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

c++ - C++ 字符串:UTF-8 还是 16 位编码?

我仍在尝试决定我的(家庭)项目是否应该使用UTF-8字符串(根据 std::string 在必要时使用额外的 UTF-8 特定函数实现)或一些 16 位字符串(实现为 std: :wstring)。该项目是一种编程语言和环境(如 VB,它是两者的结合)。

有一些愿望/限制:

  • 如果它可以在有限的硬件上运行,比如内存有限的计算机,那就太酷了。
  • 我希望代码在 Windows、Mac 和(如果资源允许)Linux 上运行。
  • 我将使用wxWidgets作为我的 GUI 层,但我希望与该工具包交互的代码限制在代码库的一个角落(我将拥有非 GUI 可执行文件)。
  • 在处理用户可见文本和应用程序数据时,我想避免使用两种不同类型的字符串。

目前,我正在使用 std::string,目的是仅在必要时使用 UTF-8 操作函数。它需要更少的内存,并且似乎是许多应用程序的发展方向。

如果您推荐 16 位编码,那是哪一种:UTF-16UCS-2?另一个?

0 投票
3 回答
15541 浏览

sql-server - 在 SQL Server 中存储 UTF-16/Unicode 数据

据此,SQL Server 2K5 在内部使用 UCS-2 它可以在 UCS-2 中存储 UTF-16 数据(具有适当的数据类型,nchar 等),但是如果有补充字符,则将其存储为 2 个 UCS-2 字符。

这给字符串函数带来了明显的问题,即 SQL Server 将一个字符视为 2。

令我有些惊讶的是,SQL Server 基本上只能处理 UCS-2,甚至更多,以至于这在 SQL 2K8 中没有得到修复。我很欣赏其中一些角色可能并不那么常见。

除了文章中建议的函数之外,还有关于在 SQL Server 2K5 中处理(损坏的)字符串函数和 UTF-16 数据的最佳方法的任何建议。

0 投票
3 回答
7806 浏览

ruby - 如何将 UCS2 字符串转换为 UTF8?

如何将 UCS2 中的字符串(每个字符 2 个字节)转换为 Ruby 中的 UTF8 字符串?

0 投票
2 回答
2441 浏览

c++ - UCS-2LE 文本文件解析

我有一个使用 Microsoft 报告工具创建的文本文件。文本文件BOM 0xFFFE在开头包含 ,然后ASCII在字符之间包含空值(即“ F.i.e.l.d.1.”)的字符输出。我可以iconv用来将其转换为UTF-8用作UCS-2LE输入格式和UTF-8输出格式……效果很好。

我的问题是我想将文件中的行读UCS-2LE入字符串并解析出字段值,然后将它们写入ASCII文本文件(即Field1 Field2)。我已经尝试过基于string和-wstring的版本getline——当它从文件中读取字符串时,类似的函数substr(start, length)会将字符串解释为8-bit值,因此起始值和长度值是关闭的。

如何将UCS-2LE数据读入C++字符串并提取数据值?我查看了boost以及icu无数的谷歌搜索,但没有找到任何有效的东西。我在这里想念什么?请帮忙!

我的示例代码如下所示:

因此,例如,如果srcBuf包含“ W.e. t.h.i.n.k. i.n. g.e.n.e.r.a.l.i.t.i.e.s.”,那么substr()上面的返回“ .k. i.n. g.e”而不是“ g.e.n.e.r.a.l.i.t.i.e.s.”。

我想要的是读取字符串并处理它,而不必担心多字节表示。是否有人有使用boost(或其他)从文件中读取这些字符串并将它们转换为固定宽度表示以供内部使用的示例?

顺便说一句,我在使用 Eclipse 和 gcc 的 Mac 上。我可能STL不理解宽字符串吗?

谢谢!

0 投票
7 回答
41777 浏览

python - 如何确定 Python 是使用 UCS-2 还是 UCS-4 编译的?

就像标题所说的那样。

搜索官方文档,我发现了这个:

sys.maxunicode:一个整数,给出 Unicode 字符支持的最大代码点。此取决于指定 Unicode 字符是存储为 UCS-2 还是 UCS-4 的配置选项。

这里不清楚的是 - 哪些值对应于 UCS-2 和 UCS-4。

该代码预计可在 Python 2.6+ 上运行。

0 投票
2 回答
9135 浏览

php - UCS2/HexEncoded 字符

任何人都可以帮助我吗?我怎么能得到 UCS2/HexEncoded 字符

像“你好”将返回“00480065006C006C006F”

这是 HexEncoded 值:

0048 = H 0065 = e 006C = l 006C = l 006F = o*

同样在阿拉伯语中 (!مرحبا عالم) 将返回 06450631062d0628064b06270020063906270644064500200021

如何在 php 中获取编码的 UCS2?

0 投票
2 回答
7575 浏览

php - php 中 UCS2/HexEncoded 字符到 UTF8

我之前问了一个问题,从 UTF-8 获取 UCS-2/HexEncoded 字符串,我在以下链接中得到了一些人的帮助。

UCS2/HexEncoded 字符

但现在我需要从 PHP 中的 UCS-2/HexEncoded 字符串中获取正确的 UTF-8。

对于以下字符串:

00480065006C006C006F 将返回“你好”

06450631062d0628064b06270020063906270644064500200021 将以阿拉伯语返回 (!مرحبا عالم)

0 投票
2 回答
740 浏览

c++ - 如何在 C++ 中计算 UCS-2 字符串的长度及其大小?

我有一个UCS-2编码的字符串。我需要将此字符串复制到另一个 UCS-2 字符串。在复制之前,我需要计算用于内存分配的 UCS-2 字符串的长度。

如何计算 UCS-2 字符串的长度?

0 投票
4 回答
4452 浏览

c++ - GCC 下的 2 字节 (UCS-2) 宽字符串

在将我的 Visual C++ 项目移植到 GCC 时,我发现 wchar_t 数据类型默认为 4 字节 UTF-32。我可以使用编译器选项来覆盖它,但随后 RTL 的整个 wcs*(wcslen、wcscmp 等)部分将变得不可用,因为它假定为 4 字节宽的字符串。

现在,我已经从头开始重新实现了 5-6 个这些函数并#defined 我的实现。但是有没有更优雅的选择 - 比如说,一个 2 字节 wchar-t 的 GCC RTL 构建静静地坐在某个地方,等待被链接?

我所追求的 GCC 的特定风格是 Mac OS X 上的 Xcode、Cygwin 以及 Debian Linux Etch 附带的一种。

0 投票
1 回答
4851 浏览

sql-server - 如何将 UTF-8 数据从 Classic asp Form post 转换为 UCS-2 以插入 SQL Server 2008 r2?

我正在“现代化”一个使用 Access 2000 数据库的经典 asp 应用程序。

我在 SQL Server 2008r2 上重写了数据库并更改了所有字段以使用启用了新的 unicode 的 nchar、nvarchar、ntext 并导入了旧数据。我也从 IIS 6 切换到 IIS 7

经典的 asp 是使用 UTF-8 收集和写入数据。

现在应用程序在网页中正确显示旧数据,但正如我触摸它一样,即:更新或插入数据已损坏。我假设在将数据写入 SQL 服务器之前,我需要以某种方式将 UTF-8 数据从经典 asp 转换为 UCS-2。

但是怎么做?

注意:似乎 sql server 在从 access 导入数据时自动将 utf-8 数据转换为可用格式。