问题标签 [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.

0 投票
4 回答
11006 浏览

winapi - Windows API:ANSI 和宽字符字符串——是 UTF8 还是 ASCII?UTF-16 还是 UCS-2 LE?

我对编码不是很专业,但这是我认为我知道的(尽管它可能是错误的):

  1. ASCII 是一种 7 位、固定长度的编码,您可以在 ASCII 图表中找到字符。
  2. UTF8 是一种 8 位的可变长度编码。所有字符都可以用 UTF8 编写。
  3. UCS-2 LE/BE 是固定长度的 16 位编码,支持最常见的字符。
  4. UTF-16 是一种 16 位的可变长度编码。所有字符都可以用 UTF16 书写。

以上这些都是正确的吗?

现在,对于问题:

  1. Windows“A”函数(如SetWindowTextA)是否接收 ASCII 字符串?还是“多字节字符串”(下面有更多问题)?
  2. Windows "W" 函数接受 UTF-16 字符串还是 UCS-2 字符串?我以为他们接受 UCS-2,但名字让我感到困惑。
  3. WideCharToMultiByte中,Microsoft 使用“宽字符串”一词来表示 UTF-16。在这种情况下,什么被认为是“多字节字符串”?UTF-8?
  4. LPWSTR“宽字符串”吗?我会说它是,但是,那不是意味着它是 UTF-16 吗?这是否意味着它可以用来显示,比如说,4 字节字符?如果不是,那么...显示 4 字节字符是不可能的吗?(Windows 似乎没有这些 API。)
  5. WideCharToMultiByte的超集的功能是wcstombs, 并且它们都适用于相同类型的字符串吗?或者说,一个在 UTF-16 上工作,而另一个在 UCS-2 上工作?
  6. 文件路径是 UTF-16 还是 UCS-2?我知道 Windows 将其视为 Microsoft 文档中的“不透明字符数组”,但根据 C 函数的标准,例如fwprintf,是否有任何标准化编码?
  7. 什么是“ANSI”编码?这甚至是一个正确的术语吗?它与 ASCII 有什么关系?
  8. (我还有更多问题,但这已经足够了......我还是忘记了其中一些......)

这些问题很多,因此任何有关所有这些连接方式的解释链接(除了阅读 Unicode 标准,这对 Windows API 没有帮助)也将不胜感激。

谢谢!

0 投票
3 回答
3285 浏览

widechar - Linux 上 __FUNCTION__ 的宽版本

有没有办法可以__FUNCTION__在 linux 上打印为宽字符?

WIDEN 的技巧对我不起作用,gcc 编译器打印:错误:?L_ FUNCTION _?在这方面没有申明

有什么帮助吗?谢谢

0 投票
1 回答
461 浏览

c++ - wctomb 扼流圈每千分之一符号 (‰)

我正在尝试打印一堆单位标签;其中一些包含希腊字符,一些包含其他有趣的代码点。

我将其追溯到wctomb不知道如何处理例如 UTF-16 字符 8240 的函数:

如何设置使用的语言环境wctomb,例如“所有 unicode 字符”?

如何从我需要的字符开始找到我需要的正确语言环境名称?

0 投票
2 回答
9807 浏览

delphi - WideChar 和 AnsiChar 有什么区别?

我正在将一些古老的(从 2003 年起)Delphi 代码升级到 Delphi Architect XE,但遇到了一些问题。我收到许多类型不兼容的错误。这些错误在 Delphi 6 中不会发生,所以我必须假设这是因为事情已经升级。

老实说,我不知道 PAnsiChar 和 PWideChar 之间的区别是什么,但 Delphi 肯定知道区别并且不会让我编译。如果我知道有什么区别,也许我可以弄清楚使用哪个或如何解决这个问题。

0 投票
3 回答
25022 浏览

delphi - 将 Char 转换为 AnsiChar 或 WideChar (Delphi)

我正在将一个非常旧(10 年以上)的应用程序升级到最新的 Delphi XE。我经常遇到很多错误

我一直在将 char 转换为正确的类型:例如。AWideChar = WideChar(fncReturnsChar);

这会引起问题吗?

0 投票
1 回答
330 浏览

mysql - 如何在 MySQL 中声明宽字符数据类型

当我阅读 C++ 手册时,它这样描述wchar_t

wchar_t 宽字符 - 2 或 4 个字节 1 个宽字符

它让我思考如何在 MySQL 中存储wchart _t 类型的数据(如汉字)?

0 投票
5 回答
19575 浏览

c++ - WideCharToMultiByte() 与 wcstombs()

WideCharToMultiByte() 和 wcstombs() 有什么区别 什么时候用哪一个?

0 投票
2 回答
707 浏览

windows - win32 api - MultiByteToWideChar 和 WideCharToMultiByte 问题

我是否需要释放从这些函数中获得的字符串?或者系统可能会跟踪它们。GetCommandLine() 也有同样的问题。

0 投票
2 回答
144 浏览

c - 整数,printf:有没有办法在没有 locale.h 的情况下将整数作为宽字符写入控制台?

假设我有一个 Unicode 代码点 c (a uint32)。locale.h有没有办法在不使用or的情况下将此整数打印到控制台(作为宽字符)wchar.h?谢谢。

0 投票
3 回答
5549 浏览

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 没有说明哪个更好

有什么建议么?