gpt4 book ai didi

windows - 为什么不允许 UTF-8 作为 "ANSI"代码页?

转载 作者:可可西里 更新时间:2023-11-01 12:19:05 25 4
gpt4 key购买 nike

Windows _setmbcp函数允许任何有效的代码页...

(except UTF-7 and UTF-8, which are not supported)

好吧,不支持 UTF-7 是有道理的:字符具有非唯一表示,这会带来复杂性和安全风险。

但为什么不是 UTF-8?

据我所知,Windows API 函数的“ANSI”版本将它们的参数转换为 UTF-16,调用等效的“W”函数,并将输出中的任何字符串转换为“ANSI”。这是我一直在手动做的。那么为什么 Windows 不能为我做这件事呢?

最佳答案

“ANSI”代码页基本上是遗留的:Windows 9X 时代。无论如何,所有现代软件都应该基于 Unicode(即 UTF-16)。

基本上,当最初设计 Ansi 代码页时,甚至还没有发明 UTF-8,因此对多字节编码的支持相当随意(即大多数 Ansi 代码页是单字节的,除了一些东一个或两个字节的亚洲代码页)。添加对“适当的”多字节编码的支持可能被认为是不值得的,因为无论如何都应该在 UTF-16 中完成所有新开发。

关于windows - 为什么不允许 UTF-8 作为 "ANSI"代码页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2995111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com