问题标签 [unicode-string]
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.
c++ - 是否有正确处理 Unicode 的 STL 字符串类?
我对 std::string 和 std::wstring 了如指掌,但他们似乎并没有完全关注 UTF-8 和 UTF-16 的扩展字符编码(至少在 Windows 上)。也不支持 UTF-32。
那么有人知道提供完整 UTF-8、UTF-16 和 UTF-32 支持的跨平台插入式替换类吗?
java - Java:如何从字符串“\u00C3”等创建 unicode
我有一个文件,其中包含手动键入为 \u00C3 的字符串。我想在java中创建一个由该unicode表示的unicode字符。我试过但找不到方法。帮助。
编辑:当我阅读文本文件时,字符串将包含“\u00C3”,而不是 unicode,而是 ASCII 字符 '\' 'u' '0' '0' '3'。我想从那个 ASCII 字符串中形成 unicode 字符。
c++ - 是否有可以在 Win32 和 MacOSX 系统上使用的跨平台 unicode 字符串类?
我还需要区域设置感知大小写转换。.NET 做得很好。我们 C++ 程序员必须等待 100 年才能得到这样的东西吗?我知道 ICU 库,但它是 20MB,我什至无法将我的代码与它链接起来......总而言之,我想结束这个噩梦......
unicode - 将 UTF-16 视为固定的 16 位编码会出现什么问题?
我正在阅读一些关于 Unicode 的 SO 问题,其中有一些我不完全理解的评论,比如这个:
Dean Harding:UTF-8 是一种可变长度编码,处理起来比固定长度编码更复杂。另外,请参阅我对 Gumbo 回答的评论:基本上,所有编码(UTF-8、UTF-16 和 UTF-32)中都存在组合字符,它们需要特殊处理。您可以使用与组合字符相同的特殊处理方法来处理 UTF-16 中的代理项对,因此在大多数情况下,您可以忽略代理项并将 UTF-16 视为固定编码。
我对最后一部分(“大部分”)有点困惑。如果 UTF-16 被视为固定的 16 位编码,这会导致什么问题?BMP 之外有字符的可能性有多大?如果有,如果您假设使用两字节字符,这会导致什么问题?
我阅读了关于代孕的维基百科信息,但它并没有真正让我更清楚!
编辑:我想我真正的意思是“为什么有人建议将 UTF-16 视为固定编码,而它似乎是假的?”
编辑2:
我在“有什么理由比 UTF-8 更喜欢 UTF-16? ”中发现了另一条评论,我认为这更好地解释了这一点:
Andrew Russell:为了性能:UTF-8 比 UTF-16 更难解码。在 UTF-16 中,字符要么是基本多语言平面字符(2 个字节),要么是代理对(4 个字节)。UTF-8 字符可以是 1 到 4 个字节之间的任意位置
这表明要提出的观点是 UTF-16 不会有任何三字节字符,因此通过假设 16 位,您不会因为结束一个字节而“完全搞砸”。但我仍然不相信这与假设 UTF-8 是单字节字符有什么不同!
python - 某些字符(商标符号等)无法写入文件但可在屏幕上打印
我一直在尝试从网站上抓取数据并将找到的数据写到文件中。超过 90% 的时间,我不会遇到 Unicode 错误,但是当数据具有以下字符(例如“汉堡王®,汉斯咖啡馆”)时,它不喜欢将其写入文件,因此我的错误处理打印它按原样显示在屏幕上,没有任何进一步的错误。
我已经尝试过编码和解码功能以及各种编码,但无济于事。
请在下面找到我编写的当前代码的摘录:
java - 在 Java / Scala 中将 Unicode (CJK ExtB) 字符转换为十进制 NCR
我正在尝试将包含 CJK ExtB 计划中的 Unicode 字符的 Java 字符串转换为十进制 NCR。
例如(您可以尝试使用http://people.w3.org/rishida/tools/conversion/):
- “游钖堃”应转换为
游鍚堃
- “怀”应该转换为
𧦧懷
这是我尝试过的(在 Scala 中):
如您所见,它在第一种情况下正确转换,将三个 unicode 字符转换为三个 NCR。
但是在第二种情况“怀”中,只有两个unicode字符,但是Java/Scala似乎认为它是一个包含三个字符的字符串。
那么,这里发生了什么,我怎样才能像我提到的网站上的转换器一样正确转换第二种情况?非常感谢。
更新:
- 我的源代码文件使用的是 UTF-8。
- 这是 "怀".toCharArray() 的结果
char[] = ?, char.toInt = 55390
char[] = ?, char.toInt = 56743
char[] = 懷, char.toInt = 25079
现在我想我知道发生了什么。字符“”在 UTF-16 中编码为 0xD85E 0xDDA7,是 4 个字节而不是 2 个字节。所以转换为char数组时需要2个元素,其中数据类型char
只能表示2个字节。
java - Java Unicode 字符串排序
在 Java 中,如何比较 Unicode 字符串?
我的意思是,如果我有几个说日文字符串,当我执行以下操作时:
这些字符串如何进行比较和排序?
unicode - 通过 FTP 将 ANSI 字符串写入 Unicode 文件
我有以下 Visual Basic 6.0 函数,它通过 FTP 将 ANSI 字符串写入新文件。我希望它将文件写为 UTF-16LE。在以下方法中是否有任何好的方法可以做到这一点?
我已经有大约 10 年没有做过 Visual Basic 6.0 了,所以我充其量只是摇摇晃晃。任何投入将不胜感激。
这是 apiInternetWriteFile 声明;
c++ - 在 ICU UnicodeString 中 countChar32() 和 length() 有什么区别?
来自文档;
长度是 UnicodeString 中 UChar 代码单元的数量。如果您想要代码点的数量,请使用 countChar32()。
和
计算字符串长度 UChar 代码单元中的 Unicode 代码点。
一个代码点可以占用一个或两个 UChar 代码单元。计算代码点涉及读取所有代码单元。
由此我倾向于认为代码点是一个实际的字符,而代码单元只是字符的一个可能部分。
例如。
假设您有一个 unicode 字符串,例如:
'foobar'
长度和 countChar32 均为 6。然后假设您有一个由 6 个字符组成的字符串,该字符串采用完整的 32 位来编码长度为 12,但 countChar32 为 6。
它是否正确?
nhibernate - 休眠禁用Unicode
在我们公司,我们使用 nhibernate 作为我们的默认映射器。我使用 nhibernate 标准编写查询 - 我注意到所有参数都以 unicode 形式发送,如下所示:
这不是期望的行为。是否可以在休眠查询中禁用 unicode?谢谢
罗梅克