问题标签 [multibyte-characters]

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 投票
1 回答
86 浏览

c - 在 macOS 和 Windows 上将 const char* 从 C 转换为 UTF16?

我的尝试看起来很老套,而且过于复杂。有没有一种简单的方法可以在 Windows 和 macOS 上将 ASCII 转换为 UTF16?

(请注意,prUTF16Char我无法更改)

尝试(通过https://stackoverflow.com/a/54376330编写)

序幕

功能

然后我可以定义一个全局变量:

通用打印函数的主体采用message

全面尝试:

https://github.com/SamuelMarks/premiere-pro-cmake-plugin/blob/f0d2278/src/common/logger.cpp [从C++重写为C]

错误:

错误:初始化元素不是编译时常量


编辑:超级hacky,但使用@barmak-shemirani 的解决方案我可以:

…并且仅freeextern变体上初始化和。

0 投票
1 回答
99 浏览

c - 打印 wchar_t 作为 wchar_t* 字符串的一部分不会终止

所以,我在 glibc 中发现了一个我喜欢报告的错误。问题是printf()在语言环境中为分组字符计算错误的宽度,no_NO.utf8因此没有在字符串的左侧留出足够的填充。我最初在 shell util 中发现了这一点printf,但它似乎源于原始printf函数 in libc,我已经使用一个小测试程序对其进行了验证。

我从大学开始就没有接触过 C,所以在创建测试用例时我有点生疏。到目前为止,我唯一的问题是,当使用这个分组字符作为字符串的一部分(一个 wchar_t 数组)时,字符串没有终止,我不确定我做错了什么。

这是我的小测试驱动程序的输出:

很明显,最终字符串中的打印发生了一些可疑的事情,这与我如何尝试使用nb_NO语言环境中使用的多字节分组字符打印字符串有关。

完整来源:

0 投票
1 回答
27 浏览

utf - 哪个是第一个多字节 UTF 代码点?

我只是想知道在仅限于单字节代码点时可以安全使用哪些 unicode 块。

那么,哪个是最后一个单字节代码点,哪个是第一个多字节代码点?