问题标签 [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 投票
8 回答
90637 浏览

.net - 将 XML 插入 SQL Server 时如何解决“无法切换编码”错误

我正在尝试插入 XML 列(SQL SERVER 2008 R2),但服务器抱怨:

System.Data.SqlClient.SqlException (0x80131904):
XML解析:第1行,字符39,无法切换编码

我发现 XML 列必须是 UTF-16 才能使插入成功。

我正在使用的代码是:

如何将对象序列化为 UTF-8 字符串?

编辑:好的,很抱歉混淆 - 字符串需要采用 UTF-8 格式。你是对的 - 默认情况下它是 UTF-16,如果我尝试插入 UTF-8,它就会通过。所以问题是如何序列化成UTF-8。

例子

这会在尝试插入 SQL Server 时导致错误:

这不会:

更新

我发现 SQL Server 2008 的Xml列类型何时需要 utf-8,以及当encoding您尝试插入的 xml 规范的属性中的 utf-16 时:

当您要添加时,请utf-8向 SQL 命令添加参数,如下所示:

如果您尝试encoding=utf-16在上一行中添加 xmlValueToAdd ,则会在插入时产生错误。此外,这VarChar意味着无法识别国家字符(它们变成问号)。

要将 utf-16 添加到 db,请使用SqlDbType.NVarCharSqlDbType.Xml在前面的示例中,或者根本不指定类型:

0 投票
2 回答
2619 浏览

sqlite - SQLite - 将特殊符号(商标,...)插入表中

如何在 SQLite 表中插入商标等特殊符号?我尝试使用 PRAGMA encoding = "UTF-16" 没有效果:(

0 投票
2 回答
1085 浏览

c - UTF-16 解码器未按预期工作

我的 Unicode 库中有一部分将 UTF-16 解码为原始 Unicode 代码点。但是,它没有按预期工作。

这是代码的相关部分(省略 UTF-8 和字符串操作):

它是如何工作的?

string是一个保存 32 位值的结构,适用string16于 16 位值,如 UTF-16。upush所做的只是将一个完整的 Unicode 代码点添加到 a中,并string根据需要重新分配内存。

u16tou是我关注的部分。它遍历string16,正常传递非代理值,并将代理对转换为完整的代码点。错误放置的代理将被忽略。

一对中的第一个代理将其最低 10 位向左移动 10 位,从而形成最终代码点的高 10 位。另一个代理将其最低 10 位添加到最后,然后将其附加到字符串中。

问题?

让我们试试最高的代码点,好吗?

U+10FFFD,最后一个有效的 Unicode 代码点,被编码为0xDBFF 0xDFFDUTF-16。让我们尝试解码。

使用utoc(未显示;我知道它正在工作(见下文))函数将其转换回 UTF-8char *以进行打印,我可以在终端中看到我得到了U+0FFFFD,而不是U+10FFFD结果。

在计算器

在gcalctool中手动进行所有转换会导致相同的错误答案。所以我的语法本身没有错,但算法错了。该算法对我来说似乎是正确的,但它以错误的答案结束。

我究竟做错了什么?

0 投票
2 回答
36719 浏览

html - 我应该从 UTF-8 更改为 UTF-16 以适应我的 HTML 中的中文字符吗?

我正在使用 ASP.NET MVC、MS SQL 和 IIS。我有一些用户在他们的个人资料信息中使用了汉字。但是,当我显示此信息时,显示为æŽå¼·è¯但它们在我的数据库中是正确的。目前,我的 HTML 页面的 UTF 设置为 UTF-8。我应该将其更改为 UTF-16 吗?我知道这可能会带来一些问题,但我的选择是什么?

0 投票
3 回答
2059 浏览

git - git gui - 可以显示 UTF16 吗?

有没有办法以某种方式git gui显示和显示 UTF16 文件的差异?

我找到了一些信息,但这主要是指命令行而不是 gui。

0 投票
8 回答
41718 浏览

java - 为什么 Java char 原语会占用 2 个字节的内存?

为什么 Java char 原始数据类型是 2 个字节,而 C 是 1 个字节,有什么理由吗?

谢谢

0 投票
1 回答
2577 浏览

javascript - Javascript 和 HTML:将文件保存为没有 BOM 的 UTF-8

我正在尝试编写一个仅 MSIE 的 HTML 页面(我将其称为“标题页面”),它允许某人通过单击按钮来保存生成的 HTML 网页(我将其称为“新页面”)。

我发现出现的“另存为”对话框不允许将“新页面”保存为没有 BOM 的 UTF-8。相反,它被保存为 Unicode(UTF-8),而浏览器又将其确定为 UTF-16。以下是“标题页”的示例代码:

我用http://web-sniffer.net/检查了“新文件”,它告诉我“新文件”是以这种方式保存的:

我能做些什么来阻止它把“新页面”保存为 UTF-16 吗?还是与代码无关?

此外,“另存为”对话框中有一个下拉菜单,据说可以让我更改字符编码,但真正做的只是保存“标题页面”而不是“新页面”。

0 投票
1 回答
1351 浏览

base64 - 高效的二进制到字符串格式(如 base64,但适用于 UTF8/UTF16)?

我有很多二进制数据,从 16 到 4096 字节不等,它们需要存储到数据库中,并且应该很容易作为一个单元进行比较(例如,只有长度匹配且所有字节匹配的两束数据批)。字符串对此很好,但是由于字符编码/重新解释问题,盲目地将二进制数据转换为字符串很容易引起问题。

在 7 位 ASCII 为标准的时代,Base64 是存储字符串的常用方法;它的 33% 空间损失有点烦人,但并不可怕。不幸的是,如果使用 UTF-16,空间损失为 166%(8 字节存储 3),这看起来很恶心。

是否有任何通用的存储方法可以将二进制数据存储在有效的 Unicode 字符串中,这样可以提高 UTF-16 的效率(希望在 UTF-8 中不会太糟糕)?base-32768 编码将 240 位存储在 16 个字符中,这将占用 32 个字节的 UTF-16 或 48 个字节的 UTF-8。相比之下,base64 编码将使用 40 个字符,这将占用 80 个字节的 UTF-16 或 40 个字节的 UTF-8。一种设计为在 UTF-8 或 UTF-16 中占用相同空间的方法可能会将 48 位存储在三个字符中,而在 UTF-8 或 UTF-16 中将占用 8 个字节,因此将 240 位存储在 UTF-8 或 UTF-16 中的 40 个字节中-8 或 UTF-16。

有这样的标准吗?

0 投票
5 回答
988 浏览

c++ - Microsoft 如何处理 UTF-16 在其 C++ 标准库实现中是可变长度编码这一事实

标准中间接禁止使用可变长度编码。

所以我有几个问题:

标准的以下部分如何处理?

17.3.2.1.3.3 宽字符序列

宽字符序列是可以声明为 TA[N] 的数组对象 (8.3.4) A,其中 T 是 wchar_t 类型 (3.9.1),可选地由 const 或 volatile 的任意组合限定。数组的初始元素具有定义的内容,直到并包括由某个谓词确定的元素。一个字符序列可以由一个指针值 S 来指定,该指针值指定它的第一个元素。

NTWCS 的长度是终止空宽字符之前的元素数。空 NTWCS 的长度为零。

问题:

basic_string<wchar_t>

  • 如何operator[]实现以及它返回什么?
    • 标准:If pos < size(), returns data()[pos]. Otherwise, if pos == size(), the const version returns charT(). Otherwise, the behavior is undefined.
  • 是否size()返回元素的数量或字符串的长度?
    • 标准:Returns: a count of the number of char-like objects currently in the string.
  • 如何resize()工作?
    • 与标准无关,它的作用是什么
  • 中的职位insert()erase()以及其他职位是如何处理的?

cwctype

  • 几乎这里的一切。如何处理变量编码?

cwchar

  • getwchar()显然不能返回整个平台字符,那么这是如何工作的呢?

加上所有其余的字符功能(主题相同)。

编辑:我将开放赏金以获得一些确认。我想得到一些明确的答案,或者至少更清楚地分配选票。

编辑:这开始变得毫无意义。这充满了完全矛盾的答案。你们中的一些人谈论外部编码(我不在乎那些,UTF-8 编码的一旦读入字符串后仍将存储为 UTF-16,输出相同),其余的只是相互矛盾。:-/

0 投票
1 回答
1546 浏览

ruby-on-rails - Ruby on Rails 和 utf-16

我有一个翻译脚本,允许翻译人员提交阿拉伯语翻译,但出于某种原因,Ruby 不喜欢这种编码。有没有办法将提交的文本编码为 utf-16?