unicode字符如何在ascii中编码?

我试图弄清楚非ascii字符如何保存在ascii文件中。 例如,如果我打开记事本++并将编码设置为UTF-8,然后写入שלום,它会将其保存为11次。 BOM标记为3,每个字符两个。 (我在每个字节之前和之后添加)

| 239 || || 187 191 215 || || || 169 215 156 || || || 215 149 215 || || 157 |

我可以查看这些值并找出他们指的是什么字母。 例如http://utf8-chartable.de/unicode-utf8-table.pl?start=1408&number=128&utf8=dec

如果我打开一个新文件并将编码设置为ASCII并写入相同的单词。 它会节省4个叮咬:

| 249 || 236 || 229 || 237 |

如果我打开ASCII文件,它会正确显示我输入的希伯来字。 它如何知道? 是否有与unicode相似的参考?


您显示的希伯来字符是Unicode码点U+05E9U+05DCU+05D5U+05DD 。 这些码点不适合ASCII码,它们的值太大。 他们可以得到保存到文件的字节个字节的唯一途径0xF9 0xEC 0xE5 0xED (分别)是,如果他们正在使用ISO-8859-8字符集(在Windows中的代码页1255和28598实现)编码。 这样的文件将被正确显示的唯一方法是如果它使用相同的字符集解释。 如果您没有做任何特别的事情来告诉操作系统使用该文件的特定字符集,那么您的操作系统必须设置为使用希伯来语作为其默认语言,并且该字符集是用于处理ANSI(非ASCII)数据的默认字符集。


只有Unicode字符U + 0000 ... U + 007F可以在Ascii中以一种简单的方式进行编码。

Notepad ++没有Ascii作为编码。 相反,它具有“ANSI”,这对于一组编码(通常是8位编码)来说是错误的。 只是不要使用它们。 改用UTF-8。

在你的情况下会发生什么情况可能是在你的环境中,“ANSI”被认为是8位拉丁/希伯来语编码,其中Ascii范围以外的代码表示希伯来字母。 这可以起到一定的作用,但不适用于系统和程序。

链接地址: http://www.djcxy.com/p/33359.html

上一篇: how unicode characters get encoded in ascii?

下一篇: Stop visual studio from changing file encoding on save