65.9K
CodeProject 正在变化。 阅读更多。
Home

代码页文件转换器

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.11/5 (15投票s)

2007年4月13日

CPOL

2分钟阅读

viewsIcon

114238

downloadIcon

4779

用于将文本文件转换为不同代码页

引言

地球上有些人仍然不理解字节和字符的区别。 那么,让我们从基础开始。

一个字节是信息存储。 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)。

如果以后打开文本文件,系统在“区域和语言选项”中具有不同的设置(如英语(美国))。 这将导致文件被错误地解释。

Screenshot - screen_shot_1.jpg

Using the Code

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

Screenshot - screen_shot_2.jpg

参考文献

历史

  • 2007年4月13日:最初的帖子
© . All rights reserved.