问题标签 [utf-16]

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 投票
9 回答
333354 浏览

unicode - What are Unicode, UTF-8, and UTF-16?

What's the basis for Unicode and why the need for UTF-8 or UTF-16? I have researched this on Google and searched here as well, but it's not clear to me.

In VSS, when doing a file comparison, sometimes there is a message saying the two files have differing UTF's. Why would this be the case?

Please explain in simple terms.

0 投票
1 回答
1458 浏览

sql-server - 在 Java 中创建一个文件,以便使用 BCP 和 UTF-16 加载到 SQLServer 2005 中的 nvarchar 字段中

我想使用 BCP 使用加载器控制文件加载到带有 nvarchar 字段的 SQL Server 2005 表中。据我了解,SQL Server 2005 仅支持 UTF-16(我相信它是 UTF-16 LE)。该文件正在由 Java 程序输出。我目前设置的方式如下:

  1. XML 格式的 BCP 加载程序文件(使用以下命令创建 bcp test_table format nul -c -x -T -f test_table.xml -S server:)

  2. 使用以下代码编写输出的 Java 程序:

    /li>
  3. 然后使用以下 bcp 命令:
    bcp test_table in from_java.txt -T -f test_table.xml -S server -error error.txt

我在表中得到的是ÿþá. 并不是áááááLittle Endian, BOM

我尝试了几种改变参数的不同排列:

  • 更改生成加载程序控制文件的方式(使用 -n 表示本机数据而不是 -c 表示字符数据...我认为这可能与它有关,但我没有看到插入的数据有任何改进)
  • 尝试了几种不同形式的 UTF-16 编码,包括没有 BOM 的大端和小端,但无济于事
  • 尝试在文件中手动输出 BOM,因为我在某处读到 Microsoft 真正喜欢使用 BOM 信息的地方
  • 考虑尝试将文件输出为 UCS-2(而不是 UTF-16),因为那是(显然)BCP 实际读取文件的内容
  • 在 bcp 导入上尝试了 -w ,这确实有效,但不能与加载器格式文件结合使用(有没有办法将任何魔法告诉 BCP 文件以 UTF-16 编码到格式文件中?)
  • 如果我在 windows-1252 中输出文件并在加载文件时将该代码页指定为 bcp 的选项,我可以让它工作-c 1252(但我不想这样做,因为我会丢失信息,因为 UTF-16 是与 1252 相比可以表示的超集)

有没有人设法让 bcp 使用 UTF-16 数据和加载器格式配置文件加载到 nvarchar 字段中?

提前致谢,

-詹姆士

0 投票
4 回答
1188 浏览

python - Python UTF-16 WAVY DASH 编码问题/问题

我今天正在做一些工作,遇到了一个“看起来很有趣”的问题。我一直在将一些字符串数据解释为 utf-8,并检查编码形式。数据通过 python-ldap 来自 ldap(特别是 Active Directory)。那里没有惊喜。

所以我几次遇到字节序列'\xe3\x80\xb0',当解码为utf-8时,它是unicode代码点3030(波浪破折号)。我需要 utf-16 格式的字符串数据,所以很自然地我通过 .encode('utf-16') 对其进行了转换。不幸的是,python 似乎不喜欢这个角色:

IronPython 似乎也不是粉丝:

如果有人能告诉我这里到底发生了什么,将不胜感激。

0 投票
2 回答
1613 浏览

c++ - 如何转换 UTF-8 <-> UTF16 可移植

有没有一种简单、便携的方式(至少是win32、linux)将UTF-16转换为UTF-8并返回?最好使用boost。

谢谢你的帮助,托拜厄斯

0 投票
1 回答
9611 浏览

javascript - Javascript - 将字符串转换为 UTF-16

我第一次使用 Javascript,它用于 sha-1 哈希。我找到了执行此操作的代码,但它的一个依赖项是将字符串转换为 utf-8 的方法,但是我正在比较的服务器使用 utf-16。我环顾四周,所有结果都显示为 w/utf-8。谁能至少指出我正确的方向?谢谢。

0 投票
5 回答
782 浏览

c# - 是否可以可靠地将用户文件自动解码为 Unicode?[C#]

我有一个网络应用程序,允许用户上传他们的内容进行处理。处理引擎需要 UTF8(我正在从多个用户的文件中组合 XML),所以我需要确保我可以正确解码上传的文件。

因为如果我的任何用户知道他们的文件甚至编码,我会感到惊讶,我几乎不希望他们能够正确指定要使用的编码(解码器)。因此,我的应用程序的任务是在解码之前进行检测。

这似乎是一个普遍的问题,我很惊讶没有找到解决方案的框架功能或通用配方。可能是我没有使用有意义的搜索词进行搜索吗?

我已经实现了 BOM 感知检测(http://en.wikipedia.org/wiki/Byte_order_mark),但我不确定文件将多久上传一次 w/oa BOM 以指示编码,这对大多数非 UTF 文件。

我的问题归结为:

  1. 对于绝大多数文件来说,BOM 感知检测是否足够?
  2. 在 BOM 检测失败的情况下,是否可以尝试不同的解码器并确定它们是否“有效”?(我的尝试表明答案是“不”。)
  3. 在什么情况下,C# 编码器/解码器框架的“有效”文件会失败?
  4. 是否有任何地方的存储库包含大量具有各种编码的文件以用于测试?
  5. 虽然我专门询问 C#/.NET,但我想知道 Java、Python 和其他语言的答案,以便下次我必须这样做。

到目前为止,我发现:

  • 具有 Ctrl-S 字符的“有效”UTF-16 文件导致编码为 UTF-8 引发异常(非法字符?) (这是 XML 编码异常。)
  • 使用 UTF-8 解码有效的 UTF-16 文件会成功,但会给出带有空字符的文本。嗯?
  • 目前,我只期望 UTF-8、UTF-16 和可能的 ISO-8859-1 文件,但如果可能的话,我希望解决方案是可扩展的。
  • 我现有的输入文件集还不够广泛,无法发现实时文件会出现的所有问题。
  • 尽管我尝试解码的文件是“文本”,但我认为它们通常是使用在文件中留下垃圾字符的方法创建的。因此“有效”文件可能不是“纯”文件。哦快乐。

谢谢。

0 投票
2 回答
1126 浏览

java - unicode 识别是 utf-8 utf-16 还是别的什么?

我正在使用 postgre 数据库,它在马拉地语单词 pimpri 的 unicode 中编码 UTF-8 就像这样 \u092A\u093F\u0902\u092A\u0930\u0940 \u0935\u093E\u0918\u0947\u0930\u0947

当在客户端我写了一个代码 String tempString=Strings.toEscapedUnicode(strQueryString[1]); 它生成这样的unicode u00E0\u00A4\u00AA\u00E0\u00A4\u00BF\u00E0\u00A4\u00AA\u00E0\u00A4\u0082\u00E0\u00A4\u00B0\u00E0\u00A5\u0080

所以我有匹配它的问题。

我有问题,如何识别甲酸盐是什么?u00E0\u00A4\u00AA\u00E0\u00A4\u00BF\u00E0\u00A4\u00AA\u00E0\u00A4\u0082\u00E0\u00A4\u00B0\u00E0\u00A5\u0080是utf8还是utf16还是utf32

以及如何使用 java 将 utf8 转换为 utf16 有什么方法吗???

0 投票
1 回答
3242 浏览

java - 使用协议“mapi://”从 java 在 Outlook 中打开邮件

我使用 Windows 桌面搜索开发了一个 Java 应用程序,我可以从中检索有关我计算机上文件的一些信息,例如 url ( System.ItemUrl )。这种网址的一个例子是

对于“正常”文件。此字段还提供从 Outlook 或 Thunderbird 索引的邮件项目的 url。Thunderbird 的项目(仅适用于 vista 和 7)也是文件 (.wdseml)。但是 Outlook 的项目 URL 以“mapi://”开头,例如:

我遇到的问题是使用此 url 从 Outlook 中的 Java 打开真实项目。如果我在 Windows 的运行对话框中复制/粘贴它,它可以工作;如果我在命令行中使用“start”后跟复制/粘贴的 url,它也可以工作。

该网址似乎以 UTF-16 编码。我希望能够编写这样的代码:

我不工作,我尝试了其他解决方案,例如:

没有任何成功。使用上述解决方案,文件“test.bat”包含正确的 url 和“start”命令,但“test.bat”的运行会导致众所周知的错误消息:

有没有人能够从 Java 打开“mapi://”项目?

0 投票
1 回答
554 浏览

php - PHP 中的 Utf-16BE 到 ISO-8859-1

我需要在 PHP 中转换 ISO-8859-1 中的 Utf-16BE(我不是编码专家,所以我不知道 Utf-16 和 Utf-16BE 是否相同)。我在某处读过使用 mb_convert_encoding 函数,但我没有那个函数,因为我没有安装多字节扩展。那么您知道另一种方法吗?

0 投票
5 回答
18768 浏览

c++ - 对 C++ 的 std::wstring、UTF-16、UTF-8 以及在 Windows GUI 中显示字符串感到困惑

我正在开发一个仅适用于 Windows 的英语 C++ 程序,我们被告知“始终使用 std::wstring”,但似乎团队中没有人真的对此有太多了解。

我已经阅读了题为“std::wstring VS std::string的问题。它非常有帮助,但我仍然不太明白如何将所有这些信息应用于我的问题。

我正在处理的程序在 Windows GUI 中显示数据。该数据以 XML 形式保存。我们经常使用 XSLT 将 XML 转换为 HTML 或 XSL:FO 以用于报告目的。

根据我阅读的内容,我的感觉是 HTML 应该编码为 UTF-8。我对 GUI 开发知之甚少,但我读过的一点点表明 GUI 的东西都是基于 UTF-16 编码的字符串。

我试图了解这让我离开了哪里。假设我们决定我们所有的持久化数据都应该是 UTF-8 编码的 XML。这是否意味着为了在 UI 组件中显示持久数据,我真的应该执行某种明确的 UTF-8 到 UTF-16 转码过程?

我怀疑我的解释可能需要澄清,所以如果您有任何问题,我会尽力提供。