【发布时间】:2011-04-22 05:46:03
【问题描述】:
众所周知,在windows系统中,我们可以在“控制面板\时钟、语言和区域”中为非Unicode程序设置区域设置语言。但是本地语言对应用程序意味着什么?由于我的理解是一个应用程序是一个编译后的二进制可执行文件,它只包含机器码指令,没有数据,那么字符编码如何影响它们的运行呢?
一种猜测是,如果可执行文件在代码段中包含一些文字字符串,它将使用一些内部字符集对它们进行编码。如果字符集不是 unicode,那么它将显示垃圾。但是不是内部的Charset是固定的吗?就像在 Java 中一样,java 规范定义内部编码是 UTF-16。
希望有人能回答我的问题,
谢谢。
【问题讨论】:
-
请记住,Unicode 并不意味着 UTF16,但在 Windows 上却意味着。他们应该在 15 年前就使用 UTF8,而这个问题就不存在了。
-
@Matt Joiner:实际上,这个问题仍然存在。请记住,我们在这里讨论的是 non-Unicode 程序。他们根本不关心 Unicode 程序是使用 UTF8 还是 UTF16。
标签: java c operating-system