示例#1
0
        public static Iconv /*!*/ Initialize(Iconv /*!*/ self,
                                             [DefaultProtocol] MutableString /*!*/ toEncoding, [DefaultProtocol] MutableString /*!*/ fromEncoding)
        {
            self._toEncoding   = RubyEncoding.GetEncodingByRubyName(toEncoding.ConvertToString()).GetEncoder();
            self._fromEncoding = RubyEncoding.GetEncodingByRubyName(fromEncoding.ConvertToString()).GetDecoder();

            return(self);
        }
示例#2
0
        public static Iconv /*!*/ Initialize(Iconv /*!*/ self,
                                             [DefaultProtocol, NotNull] MutableString /*!*/ toEncoding, [DefaultProtocol, NotNull] MutableString /*!*/ fromEncoding)
        {
            self._toEncodingString = toEncoding.ConvertToString().ToUpperInvariant();

            try {
                self._toEncoding = RubyEncoding.GetEncodingByRubyName(self._toEncodingString).GetEncoder();
            } catch (ArgumentException e) {
                throw new InvalidEncoding(self._toEncodingString, e);
            }

            try {
                self._fromEncoding = RubyEncoding.GetEncodingByRubyName(fromEncoding.ConvertToString()).GetDecoder();
            } catch (ArgumentException e) {
                throw new InvalidEncoding(fromEncoding.ConvertToString(), e);
            }

            self.ResetByteOrderMark();

            return(self);
        }
示例#3
0
        private void Encoding1()
        {
            foreach (var name in preambleEncodingNames)
            {
                var encoding = RubyEncoding.GetEncodingByRubyName(name);
                Assert(encoding != null);

                // the encoding must be an identity on ASCII characters:
                Assert(RubyEncoding.IsAsciiIdentity(encoding));
            }

            foreach (var info in Encoding.GetEncodings())
            {
                var encoding = info.GetEncoding();

                // doesn't blow up (the method checks itself):
                RubyEncoding.IsAsciiIdentity(encoding);

                //Console.WriteLine("case " + info.CodePage + ": // " + encoding.EncodingName);
            }
        }