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

unicode - 在 vbscript 文件中键入双字节字符

我需要将 → (&rarr) 转换为可以键入 ANSI VBScript 文件的符号。我正在编写一个脚本,该脚本使用正则表达式将一组选定的 htmlcode 转换为其实际的双字节符号。许多语言使用“\0x8594;”来实现这一点……VBScript 中的等价物是什么?

0 投票
14 回答
227746 浏览

java - 如何让 UTF-8 在 Java webapps 中工作?

我需要让 UTF-8 在我的 Java webapp(servlets + JSP,未使用框架)中工作,以支持äöå常规芬兰文本和西里尔字母等ЦжФ特殊情况。

我的设置如下:

  • 开发环境:Windows XP
  • 生产环境:Debian

使用的数据库:MySQL 5.x

用户主要使用 Firefox2,但也使用 Opera 9.x、FF3、IE7 和 Google Chrome 访问该站点。

如何做到这一点?

0 投票
2 回答
2900 浏览

ruby - Ruby:如何将潜在的 unicode 字符串分解为字节

我正在编写一个游戏,它接受用户输入并将其呈现在屏幕上。我为此使用的引擎完全是 unicode 友好的,所以如果可能的话,我想保留它。问题是渲染循环看起来像这样:

我对 i18n 了解不多,但我知道上面的代码只会对我和说我的语言的人有用。我更喜欢这样的东西:

这是否存在于核心发行版中?我有点反对在安装中添加额外的要求,但如果这是唯一的方法,我会活下去。

为了更有趣,我无法知道该字符串是否实际上是一个 unicode 字符串。

编辑:我正在使用的库确实可以渲染整个字符串,但是我让用户编辑即时出现的内容 - 如果他们点击“退格”,基本上,我需要知道要砍掉多少字节结束.

0 投票
3 回答
5132 浏览

c++ - TinyXML 的 UTF-8 支持如何工作?

我正在使用TinyXML来解析/构建 XML 文件。现在,根据文档,该库通过 UTF-8 支持多字节字符集。到目前为止,我认为很好。但是,该库提供的唯一 API(用于获取/设置元素名称、属性名称和值,......使用字符串的所有内容)是通过std::stringor const char*。这让我怀疑自己对多字节字符集支持的理解。仅支持 8 位字符的字符串如何包含 16 位字符(除非它使用代码页,否则会否定“支持 Unicode”声明)?我了解您理论上可以采用 16 位代码点并将其拆分为 a 中的 2 个字符std::string,但这不会改变std::string对于“Unicode”字符串,它会使其在大多数用途中无效,并且在写入文件并被另一个程序读入时可能会意外工作。

那么,有人可以向我解释一个库如何提供“8 位接口”(std::stringconst char*)并且仍然支持“Unicode”字符串吗?

(我可能在这里混淆了一些 Unicode 术语;对于由此产生的任何混淆,我深表歉意)。

0 投票
8 回答
86470 浏览

c++ - UTF8 到/从 STL 中的宽字符转换

是否可以以独立于平台的方式将 std::string 中的 UTF8 字符串转换为 std::wstring ,反之亦然?在 Windows 应用程序中,我将使用 MultiByteToWideChar 和 WideCharToMultiByte。但是,代码是为多个操作系统编译的,我仅限于标准 C++ 库。

0 投票
6 回答
7925 浏览

encoding - 如何在浏览器的文件下载框中显示非 ASCII 文件名?

似乎没有一种可接受的方式以非 ascii 格式发送标头参数。

文件下载的标头通常看起来像

内容配置:附件;文件名="theasciifilename.doc"

除非你在文件名参数中破坏了一个 utf8 编码的字符串,Firefox 会很好地处理它,而 IE 会抛出。

CodeProject 上有一个文档解释了对文件名进行编码的方法。

本文档通过十六进制编码字节将 Bản Kiểm Kê.doc 编码为 B%e1%ba%a3n%20Ki%e1%bb%83m%20K%c3%aa.doc。

问题 #1:该字符串中的第一个字符:ả 的值为 ả - 将该数字编码为十六进制,您会得到 %a3%1e。这家伙是怎么得到%e1%ba%a3的?(我显然在这里遗漏了一些简单的东西)

问题 #2:虽然 IE 承认这种编码,但 Firefox 不承认!该怎么办?

0 投票
3 回答
16915 浏览

mysql - 将 UTF-8 编码的转储加载到 MySQL

昨天几个小时我一直在关注这个问题:

我在 MySQL 4.1.22 服务器上有一个数据库,其编码设置为“UTF-8 Unicode (utf8)”(由 phpMyAdmin 报告)。此数据库中的表的默认字符集设置为latin2但是,使用它的 Web 应用程序(用 PHP 编写的 CMS Made Simple)以utf8 格式显示页面......

不管这可能是多么糟糕,它确实有效。Web 应用程序正确显示字符(主要使用捷克语和波兰语)。

我运行:“mysqldump -u xxx -p -h yyy dbname > dump.sql”。这给了我一个 SQL 脚本:

  • 以UTF-8显示时,在任何编辑器(如 Notepad+)中看起来都很完美- 所有字符都正确显示
  • 脚本中的所有表都将默认字符集设置为latin2
  • 它有“/*!40101 SET NAMES latin2 */;” 开头的行(以及其他设置)

现在,我想将此数据库导出到在 MySQL 5.0.67 上运行的另一台服务器,服务器编码也设置为“UTF-8 Unicode (utf8)”。我复制了整个 CMS Made Simple 安装,复制了 dump.sql 脚本并运行“mysql -h ddd -u zzz -p dbname < dump.sql”。之后,在显示 CMSMS 网页时,所有字符都被打乱。

我尝试设置:
SET character_set_client = utf8;
SET character_set_connection = latin2;

所有组合(只是为了安全,即使它对我没有任何意义):latin2/utf8、latin2/latin2、utf8/utf8 等 - 无济于事。所有字符仍然打乱,但有时以不同的方式:)。

我还尝试在脚本中用 utf8 替换所有 latin2 设置(为表设置名称和默认字符集)。没有。

这里有没有 MySQL 专家可以用几句话来解释(我相信这毕竟很简单)整个编码的东西是如何工作的?我读了9.1.4。连接字符集和排序规则,但在那里没有发现任何帮助。

谢谢,马特

0 投票
4 回答
2834 浏览

java - 为应用程序中的单个 Tapestry 4 页面设置 ISO-8859-1 编码,否则完全是 UTF-8

我有一个 Tapestry 应用程序将其页面作为 UTF-8 提供服务。也就是说,服务器响应具有标题:

现在在这个应用程序中有一个页面应该使用 ISO-8859-1 编码。也就是说,服务器响应应该有这个头:

这该怎么做?我不想更改整个应用程序的默认编码。

基于谷歌搜索,我尝试了以下操作:

但是使用 @Meta 注释设置这些值或覆盖 getOutputEncoding 方法都不起作用。

我正在使用 Tapestry 4.0.2。

编辑:我最终使用带有子类 HttpServletResposeWrapper 的 Servlet 过滤器来执行此操作。包装器覆盖 setContentType() 以强制响应所需的编码。

0 投票
2 回答
25619 浏览

php - 如何在 PHP 中将 utf-8 字符串转换为 utf-16 字符串

如何在 PHP 中将 utf-8 字符串转换为 utf-16 字符串?

0 投票
7 回答
45476 浏览

php - PHP:用 UTF-8 字符串中最接近的 7 位 ASCII 等效替换变音符号

我想要做的是从字符串中删除所有重音和变音符号,将“lärm”变成“larm”或“andré”变成“andre”。我试图做的是 utf8_decode 字符串,然后在其上使用 strtr,但由于我的源文件保存为 UTF-8 文件,我无法为所有变音符号输入 ISO-8859-15 字符 - 编辑器插入UTF-8 字符。

显然,解决这个问题的方法是包含一个 ISO-8859-15 文件,但必须有比拥有另一个必需的包含更好的方法吗?

更新:也许我对我尝试做的事情有点不准确:我实际上并不想删除变音符号,而是用最接近的“单字符 ASCII”等价物替换它们。