问题标签 [ucs2]

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 投票
3 回答
224 浏览

c++ - 从 ToUnicodeEx() 转换为 UTF-8

我使用 GetAsyncKeyState() 获取输入,然后使用 ToUnicodeEx() 将其转换为 unicode:

我可以使用 wfstream 将其写入文件,如下所示:

当我在 Notepad++ 中打开此文件时,它位于 UCS-2 LE 中,而我希望它采用 UTF-8 格式。我相信 ToUnicodeEx() 以 UCS-2 LE 格式返回它,它也只适用于宽字符。有没有办法通过首先转换为 UTF-8 来使用 fstream 或 wfstream 来做到这一点?谢谢!

0 投票
2 回答
125 浏览

c# - 处理对短信的异常回复

我编写了一个预约安排系统,它(除其他外)在预约到期前一天发送提醒短信。它要求用户通过对文本回复“OK”来确认他们是否出席了约会。

在人们确实回复的地方,它通常运作良好,并且减少了巨大的手动工作量。我现在正在整理一些缺陷(谢天谢地,它们很少而且影响很小),但偶尔我会看到@u{some string}. 我没有规则来解析这个,所以他们进入一个无效的响应桶进行手动跟进。

今天看到一个回复​​如下:

@u004f006b

在这个阶段我很确定@u 表示后面是 Unicode(类似于 C# 中的 \u 指示符),因此假设我得到以下信息:

U+004F => 十进制 79 => O(大写)

U+006B => 十进制 107 => k(小写)

负责的公司告诉我消息是这样发送到他们的服务器上的,所以这一定是客户端问题,对吧?我查看了我的 SMS 发送应用程序(Android 7.x 上的 ChompSMS),看不到任何将其设置为以 Unicode 和 ASCII 显式发送的内容,所以我想知道这是怎么发生的?

我从数据库中提取了 10 个以这个 Unicode 标识符开头的随机响应,并尝试编写一些东西来处理它们。以下是我对此的天真尝试:

我的问题:

  1. 为什么会发生这种情况?

  2. 使用代码 - 我在这里有什么遗漏吗?例如,框架中是否有一些东西已经可以为我处理这个问题,或者是否有一些对 Unicode 了如指掌的人可以看到的明显缺点?有什么我可以做得更好的吗?

  3. 一些代码点仍然呈现为颠倒的问题(我怀疑这些是表情符号) - 有什么办法可以处理它们吗?

编辑 2018-04-26 给后代的说明

(我打算把它放在评论中,但不管我用它做什么,它看起来都很糟糕)

我查看了已接受答案中的链接,虽然代码比我的更简洁,但最后的输出是相同的——包括倒置的问号(以及我怀疑的字形是表情符号)。更多关于 Unicode 和 UCS2 之间差异的阅读可以在这里找到维基百科的文章也值得一读:

TL;博士

  • UCS-2 已过时并已被 UTF-16 取代 UCS-2 是固定宽度编码方案,而 UTF-16 是可变宽度编码方案
  • 支持 UTF-16 的应用程序可以读取 UCS-2 文件,但反之则不行
  • UTF-16 支持从右到左的脚本,而 UCS-2 不支持
  • UTF-16 支持规范化,而 UCS-2 不支持
0 投票
1 回答
791 浏览

vb.net - 在 Visual Basic 2010 中将 ucs-2 转换为 utf-8

您好,我使用visual baisc 2010和usb调制解调器通过SerialPort“AT+CUSD=1”在命令“ussd”发送我的问题,当接收结果得到这样的ucs-2

+CUSD: 0,"00430075007200720065006E007400540069006D0065002000690073003A002000320031002D004A0055004C002D0032003000310038002000310303"

我如何转换为 utf-8

0 投票
2 回答
860 浏览

python - 使用 Python 进行 UCS2 编码和解码

UnicodeEncodeError:“ascii”编解码器无法对位置 3-7 中的字符进行编码:序数不在范围内(128)。

有什么建议吗?

0 投票
0 回答
222 浏览

ruby - Ruby UTF-8 字符串到 UCS-2 的转换

我的 Ruby 代码中有一个 UTF-8 字符串。由于限制,我想将该字符串中的 UTF-8 字符转换为它们的转义等效项(例如\u23),或者只是将整个字符串转换为 UCS-2。我需要明确执行此操作以将数据导出到文件

我尝试在 IRB 中执行以下操作:

它的输出是:

这似乎工作正常(我得到“ohm”为 2126),直到我从数组中读取数据(在 Rails 中):

这导致错误:

不兼容的字符编码:UTF-8 和 UTF-16BE

然后我尝试编写一个基本的文件转换例程:

这导致文件中出现各种奇怪的字符。

不知道出了什么问题。

有没有更好的方法来解决在 Ruby 中将 UTF-8 数据转换为 UCS-2 的问题?我真的不介意这实际上在字符串中被更改为字符串\u2126的文字部分而不是实际值。

帮助!

临时解决方法

我猴子修补了这个来做我想做的事。它不是很优雅,但它可以完成工作(是的,我知道它不漂亮......这只是获得我需要的东西):

可以使用哪个:

0 投票
2 回答
751 浏览

c++ - 同一个 C++ 项目中的 ASCII 和 UTF-8(或 UCS-2 和 UTF-16)字符串

我们有一个项目,由于历史原因,字符串处理是编码和表示的杂音;我们肯定有一些地方只能可靠地处理 ASCII,一些地方可能使用 UTF-8,我怀疑外围的一些地方正在使用特定于平台的 8 位编码(当然在我们不同的目标平台之间有所不同),各种设计为采用 UCS-2 的地方,也许还有一些很乐意在 UTF-16 上运行的地方——所有这些地方有时都作为 C 风格的字符串 ( char*, CHAR16*) 传递,有时作为 C++ 字符串 ( std::string, std::basic_string<CHAR16>) 传递。当然,文档方面的内容很少。

作为解开这个混乱的第一步,我想建立一个类型系统,为不同的编码使用真正不同的类型。

我想到的一个想法是使用 egsigned char作为 ASCII 字符串和unsigned charUTF-8 字符串以及char16_tUCS-2 和shortUTF-16(或类似的东西)的基础,但这意味着我不会不能直接使用字符串文字。此外,能够简单地将 ASCII 字符串提供给期望 UTF-8 的函数(但反之亦然)会很整洁。

对于如何解决这个问题,或者甚至是工作代码,你有什么聪明的建议吗?

代码需要与 C++11 兼容。

请不要回答“始终始终使用 UTF-8”这样的答案,因为这几乎是我的最终目标;相反,这是关于创建一个我认为可以帮助我实现目标的工具。

-- 附录 --

我可能应该提到我认为我们已经遇到了字符串编码不能正确“排列”的问题,例如 UTF-16 字符串被传递给只能处理 UCS-2 字符串或特定于平台的 8 位字符串的函数被传递给需要 ASCII 字符串的函数。就在昨天,我发现专用的转换函数在其名称中带有“ASCII”,事实上它实际上会转换为/从 Latin-1 而不是 ASCII。

0 投票
1 回答
131 浏览

angular - 如何在角度 7 中将用户输入转换为 UCS2 并通过 Usb Gsm 调制解调器发送消息)

我有一个 Angular 7 应用程序,它从用户那里获取输入(电话号码和消息)以使用电子串行端口发送短信。

我想在 UCS2 中编码电话号码和消息。我怎样才能将它转换为角度 7。

我找不到任何关于转换为 UCS2 的指南我已经尝试过 https://maketips.net/tip/239/convert-to-ucs2-and-from-ucs2-in-javascript

但我无法正确包含它,因为我是新手。

0 投票
1 回答
40 浏览

ascii - 使用将字符转换为 ASCII 值例程时,需要找出它实际返回的值,因为它们不是严格的 ascii

在测试我的代码使用检查字符以显示使用 ASCII 值例程的例程时,我的程序应该删除控制字符但保留用户可能输入的字符。似乎虽然 ASCII 值例程被称为“ascii”,但它不仅返回 ascii 值:给它一个 ƒ 字符返回 402。

例如,找到了这个网站 ,但我看不到 ƒ 402。

需要知道是否还有其他 402 以上的 ascii 代码需要用来测试我的代码。编写“ascii”的软件内部使用的字符集使用 UCS2。找到的网站没有提到 USC2。

0 投票
2 回答
174 浏览

python - Python unicode 索引显示不同的字符

我在包含 Unicode 字符的 Python 2.7.10 的“窄”版本中有一个 Unicode 字符串。我正在尝试使用该 Unicode 字符作为字典中的查找,但是当我索引字符串以获取最后一个 Unicode 字符时,它返回一个不同的字符串:

为什么会发生这种情况,如何'\U0001f44d'从字符串中检索?

编辑:unicodedata.unidata_version是 5.2.0 并且sys.maxunicode是 65535。

问题截图

0 投票
0 回答
98 浏览

unicode - UCS-2 未知字符

从下面的链接我可以看到 UCS-2 的一些未知字符。那些是什么?为什么那些不为人知?所以我们不能解码它们?

http://www.columbia.edu/kermit/ucs2.html

基本上用户正在向我们的路由器发送 ucs-2, dcs 8 消息。但是当我解码它时,我会得到一些垃圾字符。例如:D83E DD13 --> 打印为 ? 或一些垃圾,如何在文本文件中以适当的值打印和查看它们。

谢谢和问候, 阿什维尼