Alf*_*red 5 c java operating-system
众所周知,在windows系统中,我们可以在“控制面板\时钟、语言和区域”中为非Unicode程序设置区域语言。但是本地语言对应用程序意味着什么?既然按照我的理解,应用程序就是一个编译好的二进制可执行文件,里面只有机器码指令,没有数据,那么字符编码是如何影响其运行的呢?
一种猜测是,如果可执行文件在代码段中包含一些文字字符串,它将使用一些内部 Charset 对其进行编码。如果字符集不是 unicode,那么它将显示垃圾。但是内部Charset不是固定的吗?就像在 Java 中一样,Java 规范定义的内部编码是 UTF-16。
希望有人能回答我的问题
谢谢。
Windows 有两种方法可以让程序与之对话,称为“ANSI API”和“Unicode API”,“非 unicode 应用程序”是一种通过“ANSI API”而不是“Unicode”与 Windows 对话的方法。 API”。
这意味着应用程序传递给 Windows 的任何字符串都只是一个字节序列,而不是一个 Unicode 字符序列。Windows 必须决定字节序列对应哪些字符,而您正在谈论的控制面板设置就是它如何做到这一点。
因此,例如,在设置为使用 Windows Western 的 PC 上输出值为 0xE4 的字节的非 unicode 程序将显示字符ä,而设置为希伯来语的程序将显示字符? .
| 归档时间: |
|
| 查看次数: |
7216 次 |
| 最近记录: |