问题标签 [widechar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
winapi - Windows API:ANSI 和宽字符字符串——是 UTF8 还是 ASCII?UTF-16 还是 UCS-2 LE?
我对编码不是很专业,但这是我认为我知道的(尽管它可能是错误的):
- ASCII 是一种 7 位、固定长度的编码,您可以在 ASCII 图表中找到字符。
- UTF8 是一种 8 位的可变长度编码。所有字符都可以用 UTF8 编写。
- UCS-2 LE/BE 是固定长度的 16 位编码,支持最常见的字符。
- UTF-16 是一种 16 位的可变长度编码。所有字符都可以用 UTF16 书写。
以上这些都是正确的吗?
现在,对于问题:
- Windows“A”函数(如
SetWindowTextA
)是否接收 ASCII 字符串?还是“多字节字符串”(下面有更多问题)? - Windows "W" 函数接受 UTF-16 字符串还是 UCS-2 字符串?我以为他们接受 UCS-2,但名字让我感到困惑。
- 在WideCharToMultiByte中,Microsoft 使用“宽字符串”一词来表示 UTF-16。在这种情况下,什么被认为是“多字节字符串”?UTF-8?
- 是
LPWSTR
“宽字符串”吗?我会说它是,但是,那不是意味着它是 UTF-16 吗?这是否意味着它可以用来显示,比如说,4 字节字符?如果不是,那么...显示 4 字节字符是不可能的吗?(Windows 似乎没有这些 API。) WideCharToMultiByte
的超集的功能是wcstombs
, 并且它们都适用于相同类型的字符串吗?或者说,一个在 UTF-16 上工作,而另一个在 UCS-2 上工作?- 文件路径是 UTF-16 还是 UCS-2?我知道 Windows 将其视为 Microsoft 文档中的“不透明字符数组”,但根据 C 函数的标准,例如
fwprintf
,是否有任何标准化编码? - 什么是“ANSI”编码?这甚至是一个正确的术语吗?它与 ASCII 有什么关系?
- (我还有更多问题,但这已经足够了......我还是忘记了其中一些......)
这些问题很多,因此任何有关所有这些连接方式的解释链接(除了阅读 Unicode 标准,这对 Windows API 没有帮助)也将不胜感激。
谢谢!
widechar - Linux 上 __FUNCTION__ 的宽版本
有没有办法可以__FUNCTION__
在 linux 上打印为宽字符?
WIDEN 的技巧对我不起作用,gcc 编译器打印:错误:?L_ FUNCTION _?在这方面没有申明
有什么帮助吗?谢谢
c++ - wctomb 扼流圈每千分之一符号 (‰)
我正在尝试打印一堆单位标签;其中一些包含希腊字符,一些包含其他有趣的代码点。
我将其追溯到wctomb
不知道如何处理例如 UTF-16 字符 8240 的函数:
如何设置使用的语言环境wctomb
,例如“所有 unicode 字符”?
如何从我需要的字符开始找到我需要的正确语言环境名称?
delphi - WideChar 和 AnsiChar 有什么区别?
我正在将一些古老的(从 2003 年起)Delphi 代码升级到 Delphi Architect XE,但遇到了一些问题。我收到许多类型不兼容的错误。这些错误在 Delphi 6 中不会发生,所以我必须假设这是因为事情已经升级。
老实说,我不知道 PAnsiChar 和 PWideChar 之间的区别是什么,但 Delphi 肯定知道区别并且不会让我编译。如果我知道有什么区别,也许我可以弄清楚使用哪个或如何解决这个问题。
delphi - 将 Char 转换为 AnsiChar 或 WideChar (Delphi)
我正在将一个非常旧(10 年以上)的应用程序升级到最新的 Delphi XE。我经常遇到很多错误
我一直在将 char 转换为正确的类型:例如。AWideChar = WideChar(fncReturnsChar);
这会引起问题吗?
mysql - 如何在 MySQL 中声明宽字符数据类型
当我阅读 C++ 手册时,它这样描述wchar_t,
wchar_t 宽字符 - 2 或 4 个字节 1 个宽字符
它让我思考如何在 MySQL 中存储wchart _t 类型的数据(如汉字)?
c++ - WideCharToMultiByte() 与 wcstombs()
WideCharToMultiByte() 和 wcstombs() 有什么区别 什么时候用哪一个?
windows - win32 api - MultiByteToWideChar 和 WideCharToMultiByte 问题
我是否需要释放从这些函数中获得的字符串?或者系统可能会跟踪它们。GetCommandLine() 也有同样的问题。
c - 整数,printf:有没有办法在没有 locale.h 的情况下将整数作为宽字符写入控制台?
假设我有一个 Unicode 代码点 c (a uint32
)。locale.h
有没有办法在不使用or的情况下将此整数打印到控制台(作为宽字符)wchar.h
?谢谢。
winapi - WIN32上的struct __stat64和struct _stati64有什么区别?
我正在编写一些代码,这些代码需要在自 WIN2000 以来的每个版本的 Windows 上运行,并且还需要使用宽文件路径。
我需要调用一些变体stat
来获取文件长度。该文件可能大于 4GB。
以下是 MSDN Visual Studio .NET 2003[1] 文档中的相关部分:
[1] http://msdn.microsoft.com/en-us/library/14h5k7ff(v=VS.71).aspx
我无法弄清楚__stat64
结构和_stati64
结构之间的区别。我知道我想使用_wstat64
,或者_wstati64
但 MSDN 没有说明哪个更好。
有什么建议么?