CEOQAWindows VistaDBAWindows 2003Visual Studio 2005Windows 2000设计 / 图形架构师Windows XP.NET 2.0Windows FormsMFCC# 2.0初学者开发Visual StudioWindows.NETC#
代码页文件转换器
用于将文本文件转换为不同代码页
引言
地球上有些人仍然不理解字节和字符的区别。 那么,让我们从基础开始。
一个字节是信息存储。 1 字节 = 8 位。 就是这样。
一个字符是任何书写符号。 它的范围从英文字母到汉字,再到任何其他特殊字符,甚至科学或数学符号。 为了让计算机存储字符,有很多种编码方式。 如果编码是 8 位编码,这意味着每个字符将存储在一个字节中。 但其他编码提供 7 位编码(如 ANSI)或 16 位编码(如 Unicode)。
代码页表示用于将字符编码为位流的编码机制。 以下是一些最常见的代码页的示例
代码页 | 名称 | 又名 |
1200 | utf-16 | Unicode |
1250 | windows-1250 | 中欧 (Windows) |
1251 | windows-1251 | 西里尔文 (Windows) |
1252 | Windows-1252 | 西欧 (Windows) |
1253 | windows-1253 | 希腊语 (Windows) |
1254 | windows-1254 | 土耳其语 (Windows) |
1255 | windows-1255 | 希伯来语 (Windows) |
1256 | windows-1256 | 阿拉伯语 (Windows) |
20127 | us-ascii | US-ASCII |
20936 | x-cp20936 | 简体中文 (GB2312-80) |
20949 | x-cp20949 | 韩文Wansung |
28591 | iso-8859-1 | 西欧 (ISO) |
65001 | utf-8 | Unicode(UTF-8) |
65005 | utf-32 | Unicode (UTF-32) |
背景
文件是字节流。 如果该文件是文本文件,那么这个字节流应该代表上面提到的一种代码页中的那些字符。 但是,文件中没有存储任何信息,用来表明使用哪种代码页进行编码(尽管我们可以编写尝试找到最佳猜测的算法)。 因此,如果该文件是用系统不支持的代码页编写的,那么将需要进行转换以使用预期的代码页重新编码该文件。
对于下面的屏幕截图示例,如果 Windows XP 中的“区域和语言选项”将语言设置为匹配非 Unicode 程序为阿拉伯语(埃及),这意味着用于编码 TXT 文件的编码将是 (Windows-1256)。
如果以后打开文本文件,系统在“区域和语言选项”中具有不同的设置(如英语(美国))。 这将导致文件被错误地解释。

Using the Code
该软件需要 .NET 2.0 才能运行。 首先,提供输入文件的路径和输入代码页。 然后,提供输出文件与目标代码页的路径。

参考文献
历史
- 2007年4月13日:最初的帖子