问题标签 [utf-8]

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 投票
18 回答
75235 浏览

php - 将所有表和字段更改为 MYSQL 中的 utf-8-bin 排序规则的脚本

SQL是否有PHP我可以运行的脚本来更改数据库中所有表和字段中的默认排序规则?

我可以自己写一个,但我认为这应该是在这样的网站上很容易获得的东西。如果我能在有人发布之前自己想出一个,我会自己发布。

0 投票
6 回答
77217 浏览

validation - 如何检查文件是否为有效的 UTF-8?

我正在处理一些应该是有效的 UTF-8 但不是的数据文件,这会导致解析器(不在我的控制之下)失败。我想添加一个预先验证 UTF-8 格式良好的数据的阶段,但我还没有找到一个实用程序来帮助做到这一点。

W3C 上有一个Web 服务似乎已经死了,我发现了一个仅限 Windows 的验证工具,它报告无效的 UTF-8 文件,但不报告要修复的行/字符。

我会很高兴有一个我可以放入并使用的工具(理想情况下是跨平台的),或者一个我可以作为数据加载过程的一部分的 ruby​​/perl 脚本。

0 投票
2 回答
5382 浏览

php - 在 PHP 中将 UTF-8 字符串转换为/从 7 位 XML

UTF-8 字符串(即 8 位字符串)如何与 XML 兼容的 7 位字符串(即带有数字实体的可打印 ASCII)相互转换?

encode()这样的函数:

decode()也很有用:

PHP 的htmlenties()/html_entity_decode()对没有做正确的事情:

费力地指定类型会有所帮助,但仍会返回与 XML 不兼容的命名实体,而不是数字实体:

0 投票
7 回答
34508 浏览

java - 一旦 UTF-8 编码,如何截断 java 字符串以适应给定的字节数?

我如何截断一个 java String,以便我知道一旦它被 UTF-8 编码,它将适合给定数量的字节存储?

0 投票
8 回答
33429 浏览

php - 如何对 UTF-8 字符串数组进行排序?

我目前不知道如何在 PHP 中对包含 UTF-8 编码字符串的数组进行排序。该数组来自 LDAP 服务器,因此通过数据库进行排序(没问题)不是解决方案。以下不适用于我的 Windows 开发机器(尽管我认为这至少应该是一个可能的解决方案):

输出是:

这完全是胡说八道。使用 1252 作为代码页setlocale()给出了另一个输出,但仍然是一个明显错误的输出:

有没有办法使用 UTF-8 字符串区域设置对数组进行排序?

刚刚注意到这似乎是 Windows 上的 PHP 问题,因为与de_DE.utf8used as locale 相同的片段在 Linux 机器上工作。尽管如此,这个Windows特定问题的解决方案会很好......

0 投票
5 回答
32127 浏览

perl - 解码 UTF8 电子邮件标头

我有一个表单的电子邮件主题:

电子邮件的正文是 utf-8 base64 编码的 - 并且解码得很好。我目前正在使用 Perl 的 Email::MIME 模块来解码电子邮件。

=?utf-8 分隔符的含义是什么?如何从该字符串中提取信息?

0 投票
7 回答
58102 浏览

pdf - PDF 中的 Unicode

我的程序根据要求生成相对简单的 PDF 文档,但是我遇到了 unicode 字符的问题,比如汉字或奇怪的数学符号。要在 PDF 中编写普通字符串,请将其放在括号中:

还可以选择使用八进制代码转义字符:

但这最多只能包含 512 个字符。你如何编码或转义更高的字符?我看过对字节流和十六进制编码字符串的引用,但我读过的所有引用似乎都不愿意告诉我如何实际去做。


编辑:或者,给我指出一个很好的 Java PDF 库,它将为我完成这项工作。我目前使用的是 gnujpdf 的一个版本(我已经修复了几个错误,因为原作者似乎已经离开了),它允许您针对 AWT 图形界面进行编程,理想情况下任何替换都应该这样做相同。

替代方案似乎是 HTML -> PDF,或基于段落和框的编程模型,感觉非常像 HTML。iText 是后者的一个例子。这意味着重写我现有的代码,我不相信他们会给我同样的布局灵活性。


编辑 2:我之前没有意识到,但是 iText 库有一个 Graphics2D API,并且似乎可以完美地处理 unicode,所以这就是我将要使用的。虽然这不是问题的答案,但它为我解决了问题。


编辑 3: iText 对我来说工作得很好。我想教训是,当面对看似毫无意义的困难时,寻找比你更了解它的人。

0 投票
12 回答
201467 浏览

encoding - 如何更正文件的字符编码?

我有一个 ANSI 编码的文本文件,它不应该被编码为 ANSI,因为有 ANSI 不支持的重音字符。我宁愿使用 UTF-8。

数据可以正确解码还是在转码中丢失?

我可以使用哪些工具?

这是我所拥有的示例:

我可以从上下文中看出(café应该是cafe)这些应该是这两个字符:

0 投票
8 回答
2690 浏览

c++ - 您如何编写对 UTF-8 安全的代码?

我们有一组为 ASCII 字符集开发的应用程序。现在,我们正试图在冰岛安装它,但遇到了冰岛字符被搞砸的问题。

我们正在解决我们的问题,但我想知道:是否有一个很好的“指南”来编写专为 8 位字符设计的 C++ 代码,并且在提供 UTF-8 数据时可以正常工作?

我不能指望每个人都阅读整个 Unicode 标准,但如果有更容易理解的内容,我想与团队分享,这样我们就不会再遇到这些问题了。

此时重写所有应用程序以使用 wchar_t 或其他字符串表示形式是不可行的。我还会注意到这些应用程序通过网络与使用 8 位字符的服务器和设备进行通信,因此即使我们在内部使用 Unicode,我们仍然会在边界处遇到翻译问题。在大多数情况下,这些应用程序只是传递数据。除了从一个地方复制到另一个地方之外,他们不会以任何方式“处理”文本。

使用的操作系统是 Windows 和 Linux。我们使用 std::string 和普通的 C 字符串。(不要让我为任何设计决定辩护。我只是想帮助解决这个烂摊子。)


以下是建议的清单: