/td> ISCII Telugu I18N.Other.CP57005   57006 x-iscii-as ISCII Assamese I18N.Other.CP57006   57007 x-iscii-or ISCII Oriya I18N.Other.CP57007   57008 x-iscii-ka ISCII Kannada I18N.Other.CP57008   57009 x-iscii-ma ISCII Malayalam I18N.Other.CP57009   57010 x-iscii-gu ISCII Gujarati I18N.Other.CP57010   57011 x-iscii-pa ISCII Punjabi I18N.Other.CP57011   65000 utf-7 Unicode (UTF-7) :UTF7Encoding MNDisp MNSave 65001 utf-8 Unicode (UTF-8) :UTF8Encoding BrDisp BrSave MNDisp MNSave BOM:EF-BB-BF

 

可以看出,在我们的 Ubuntu 操作系统中,默认字符编码是“Unicode (UTF-8) [65001:utf-8]”。系统所支持的字符编码数量减少到 95 个。还可以看到,在 Mono 中,很多表示字符编码的类不再位于 System.Text 命名空间中,而是在 I18N 底下的命名空间中。而且大部分都是公共类型。

测试用的 Ubuntu 10.10 Server 操作系统是英文版的,但不影响它有 GB18030 等中文编码。该操作系统的安装过程请参见“从源代码编译 Mono 2.8.2 是否需要低版本的 Mono”一文。

 

其他源程序

我们前面只给出一个最主要的 C# 源程序 EncodingTester.cs。其余的源程序现在给出,下面就是 Utilities.cs:

01:  using System;
02:  using System.Text;
03:  using System.Collections.Generic;
04:  
05:  namespace Skyiv
06:  {
07:    public static class Utilities
08:    {
09:      public static List<Tuple<string, string>> GetEnvironmentInfo()
10:      {
11:        var info = new List<Tuple<string, string>>();
12:        Add(info, "操作系统", Environment.OSVersion);
13:        Add(info, "公共语言运行库", Environment.Version + " [" + RuntimeFramework.CurrentFramework + "]");
14:        Add(info, "默认字符编码", GetDefaultEncoding());
15:        Add(info, "字节顺序", (BitConverter.IsLittleEndian ? "Little" : "Big") + "-Endian");
16:        return info;
17:      }
18:  
19:      static string GetDefaultEncoding()
20:      {
21:        var encoding = Encoding.Default;
22:        return string.Format("{0} [{1}:{2}]", encoding.EncodingName, encoding.CodePage, encoding.WebName);
23:      }
24:  
25:      static void Add(List<Tuple<string, string>> info, string key, object value)
26:      {
27:        info.Add(Tuple.Create(key, value.ToString()));
28:      }
29:    }
30:  }

 

而 RuntimeFramework.cs 请参见“.NET Framework CLR 版本检测”一文。HtmlMaker.cs、HtmlTable.cs 和 ExtensionMethods.cs 请参见“以 Html 表格展现数据”一文。

 

参考资料

  1. Unicode Consortium
  2. Uincode – Wikipedia
  3. Byte order mark – Wikipedia
  4. Unicode - 维基百科
  5. MSDN: Encoding 类 (System.Text)
  6. MSDN: Encoding.GetEncodings 方法
  7. MSDN: 了解编码
  8. MSDN: 使用 Unicode 编码
返回
【上篇】
【下篇】

抱歉!评论已关闭.