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

c++ - 如何将用户从控制台输入的内容读入 Unicode 字符串?

一个 C++ 初学者的问题。这是我目前拥有的:

这恰好在美国“工作”,但我不知道如果......说法国用户正在运行这个应用程序并开始输入奇怪的字符,例如Çanemeplaîtpas.xml 在命令行上会发生什么。我正在寻找一种干净的方法来填充该CAtlString类型的字符串。输入的最大长度总是可以设置得足够长,但理想情况下,我想将 unicode 和非 unicode 条目限制为相同数量的字符。希望这样做相当容易和优雅。

0 投票
2 回答
2628 浏览

c++ - utfcpp 和 Win32 宽 API

使用小型utfcpp库将我从广泛的 Windows API(FindFirstFileW 等)返回的所有内容转换为使用 utf16to8 的有效 UTF8 表示是否很好/安全/可能?

我想在内部使用 UTF8,但无法获得正确的输出(在另一次转换或普通 cout 后通过 wcout)。正常的 ASCII 字符当然可以,但是 ñä 会搞砸。

还是有更简单的选择?

谢谢!

更新:感谢 Hans(下),我现在可以通过 Windows API 轻松进行 UTF8<->UTF16 转换。两种方式转换有效,但来自 UTF16 字符串的 UTF8 有一些额外的字符,以后可能会给我带来一些麻烦......)。出于纯粹的友好,我会在这里分享它:)):

0 投票
2 回答
2888 浏览

c++ - WideCharToMultiByte 问题

0 投票
2 回答
4384 浏览

php - 输出 UTF-16?有点卡住

我有一些 UTF-16 编码字符的代理对形式。我想将这些代理对输出为屏幕上的字符。

有谁知道这怎么可能?

0 投票
1 回答
922 浏览

php - 使用 PHP 清理 UTF-16/CJK 字符?

我的计算机上有一些 UTF-16 格式的文件,但这似乎是因为文件的错误或损坏而不是意图 - 它们应该是简单的英文。我上传了其中一个(这里)。如果我将 Firefox(Viwe>Character Encoding)中的编码保留为 UTF-8,那么我会得到大量的乱码(见截图)。如果我将编码更改为 UTF-16,那么它看起来会好很多(请参阅screenshot2),尽管仍然存在一堆 CJK 字符。

我想浏览所有这些文件并清理它们,并可能以 utf-8 格式保存它们(我会将内容插入到使用 utf8_general_ci 排序规则的 mysql 表中)。有谁知道我如何使用 PHP 以自动化方式做到这一点?如果您尝试以 UTF-8 格式查看文件,我想删除文件显示的所有时髦字符,以及如果您以 UTF-16 格式查看文件显示的所有 CJK 字符。

0 投票
4 回答
3466 浏览

hash - 为 UTF16 中的文件路径寻找一个好的 64 位散列

我有一个 Unicode/ UTF-16 编码路径。路径分隔符是 U+005C '\'。路径是以 null 结尾的根相对 Windows 文件系统路径,例如“\windows\system32\drivers\myDriver32.sys”

我想将此路径散列为64 位无符号整数。它不需要“加密健全的”。哈希应该不区分大小写,但能够处理非 ascii 字母。显然,散列也应该很好地分散。

我有一些想法:

A) 使用 Windows 文件标识符作为“哈希”。在我的情况下,如果文件被移动,我确实希望哈希值发生变化,所以这不是一个选项。

B) 只需对整个字符串使用常规的 sting 散列:散列 += 素数 * 散列 + 代码点。

我确实觉得可以利用路径由“段”(文件夹名和最终文件名)组成的事实。

总结一下需求:

1) 64 位哈希
2) 文件系统路径的良好分布/很少冲突。
3) 高效
4) 不需要安全
5) 不区分大小写

0 投票
2 回答
688 浏览

.net - 带有 ASP .NET 编码问题的 Sql server 2005

我再次写下我的编码问题......现在有一些代码示例。

简而言之:当保存到数据库输入数据时,某些语言特定的字符,如波兰语 'ń' 不会保存 - insted 'n' 被保存。另一方面,字符串:Adams æbler,其中 æ 正在保存。

这是代码开始的代码,可以保存内容并显示数据:

Default.aspx 具有元标记:

表如下所示:

我不知道还需要什么来解决这个问题。帮助表示赞赏。

谢谢,帕维尔

0 投票
5 回答
306 浏览

c# - 如何确定可能的“最低”编码?

设想

您有很多 XML 文件以 UTF-16 格式存储在数据库或空间不成问题的服务器上。您需要将大部分需要获取到其他系统的文件作为 XML 文件使用,并且尽可能少地使用空间是至关重要的。

问题

实际上,以 UTF-16 格式存储的文件中只有大约 10% 需要以 UTF-16 格式存储,其余的可以安全地以 UTF-8 格式存储并且没问题。如果我们可以让需要 UTF-16 的那些是这样的,而其余的是 UTF-8,我们可以在文件系统上使用大约 40% 的空间。

我们尝试对数据进行很好的压缩,这很有用,但我们发现使用 UTF-8 获得的压缩率与使用 UTF-16 获得的压缩率相同,而且 UTF-8 的压缩速度也更快。因此,最终如果尽可能多的数据以UTF-8存储,我们不仅可以在解压缩存储时节省空间,即使在压缩时我们仍然可以节省更多空间,我们甚至可以通过压缩本身节省时间.

目标

弄清楚 XML 文件中何时有需要 UTF-16 的 Unicode 字符,因此我们只能在必须时使用 UTF-16。

关于 XML 文件和数据的一些细节

虽然我们控制 XML 本身的模式,但从 Unicode 角度来看,我们不控制值中可以包含什么类型的“字符串”,因为源可以免费提供 Unicode 数据以供使用。但是,这种情况很少见,因此我们不希望每次都使用 UTF-16 来支持仅 10% 的时间需要的东西。

开发环境

我们将 C# 与 .Net Framework 4.0 一起使用。

编辑:解决方案

解决方案就是使用 UTF-8。

这个问题是基于我对 UTF 的误解,我感谢大家帮助我解决问题。谢谢!

0 投票
5 回答
12394 浏览

javascript - BMP 之外的 JavaScript 字符串

BMP 是基本多语言平面

根据JavaScript: The Good Parts

JavaScript 是在 Unicode 是 16 位字符集的时候构建的,因此 JavaScript 中的所有字符都是 16 位宽。

这让我相信 JavaScript 使用 UCS-2(不是 UTF-16!)并且只能处理 U+FFFF 以内的字符。

进一步的调查证实了这一点:

fromCharCode方法在返回 Unicode 字符时似乎只使用最低 16 位。尝试获取 U+20001(CJK 统一表意文字 20001)会返回 U+0001。

问题:是否可以在 JavaScript 中处理后 BMP 字符?


2011-07-31:从Unicode Support Shootout: The Good, The Bad, & the (mostly) Ugly 中的第12 张幻灯片很好地涵盖了与此相关的问题:

0 投票
10 回答
57416 浏览

unicode - grepping 二进制文件和 UTF16

Standard grep/ pcregrepetc. 可以方便地与二进制文件一起用于 ASCII 或 UTF8 数据 - 是否有一种简单的方法可以让它们也尝试 UTF16(最好同时尝试,但会这样做)?

无论如何,我试图获取的数据都是 ASCII(库中的引用等),它只是找不到,因为有时任何两个字符之间都有 00,有时没有。

我看不出有任何方法可以在语义上完成它,但是这些 00 应该可以解决问题,除非我不能在命令行上轻松使用它们。