问题标签 [iconv]

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 投票
4 回答
26107 浏览

ruby - 使用 Ruby 将 UTF8 转换为 ANSI

我有一个 Ruby 脚本,它在 Linux 机器中远程生成一个 UTF8 CSV 文件,然后通过 SFTP 将文件传输到 Windows 机器。

然后我需要用 Excel 打开这个文件,但是 Excel 没有 UTF8,所以我总是需要在能够将 UTF8 转换为 ANSI 的文本编辑器中打开文件。

我很想使用 Ruby 以编程方式执行此操作,并避免手动转换步骤。最简单的方法是什么?

PS:我尝试使用 iconv 但没有成功。

0 投票
2 回答
3209 浏览

ruby - 使用 www::mechanize 时的 Iconv::IllegalSequence

我正在尝试做一些网络抓取,但 WWW:Mechanize gem 似乎不喜欢编码和崩溃。
发布请求导致 302 重定向(随后是机械化,到目前为止一切都很好),结果页面似乎崩溃了。我用谷歌搜索了很多,但到目前为止还没有出现如何解决这个问题。大家有什么想法吗?

代码:

错误:

0 投票
4 回答
5240 浏览

macos - 如何解决 Mac Os x 上 iconv 的奇怪问题

我在Mac Os X 10.5 上(但我在 10.4 上重现了这个问题)

我正在尝试使用iconvUTF-8 文件转换为 ASCII

utf-8 文件包含像“éàç”这样的字符

我希望将重音字符变成最接近的 ascii 等价物

所以

我的命令是这样的:

iconv -f UTF-8 -t ASCII//TRANSLIT//IGNORE myutf8file.txt

在 Linux 机器上运行良好

但在我本地的 Mac Os XI 上,例如:

è => 'e

à => `一个

我真的不明白为什么 iconv 在 mac os x 上返回这个奇怪的输出但在 linux 上一切都很好

有什么帮助吗?或方向?

提前致谢

0 投票
2 回答
663 浏览

iconv - 任何 PHP 或 Ruby 库可以将繁体中文转换为简体中文,反之亦然?

是否有任何 PHP 或 Ruby 库可以将繁体中文转换为简体中文或反之亦然(Big5 <--> GB)?iconv 库不会这样做,因为它只是转换编码,但字形保持不变。

0 投票
3 回答
5557 浏览

encoding - Iconv 库的编码转换有什么好的替代方案吗?

我在 Ruby 上使用 Iconv 库将编码从 UTF-8 转换为 UTF-32、UTF-16 等,效果非常好。

但是,在从 Big5 转换为 UTF-8 时,我确实看到了一个问题——无效序列引发了异常......

当它从 CP950 转换为 UTF-8 时问题就消失了,其中 CP950 本质上是 Big5 ......

所以我想知道除了使用Iconv之外是否还有其他好的选择?还是CP950是Big5的更好版本?

0 投票
3 回答
10118 浏览

mysql - iconv 给出带有智能引号的“非法字符”——如何摆脱它们?

我有一个 MySQL 表,其中 120,000 行以 UTF-8 格式存储。有一个字段,产品名称,其中包含带有许多重音符号的文本。在将第二个字段转换为对 url 友好的表单 (ASCII) 后,我需要用相同的名称填充第二个字段。

由于 PHP 不直接处理 UTF-8,我正在使用:

将名称转换为 ISO-8859-1,然后是一个庞大的 strstr 语句,将任何重音字符替换为其非重音等效字符(例如,à 变为 a)。

但是,原始文本名称是用智能引号输入的,并且 iconv 遇到一个就会窒息——我得到:

为了在使用 iconv 之前摆脱智能引号,我尝试使用三个语句,例如:

(’ 是 UTF-8 智能单引号的原始值)

因为文本文件太长,这些 str_replace 会导致脚本每次都超时。

  1. 在运行 iconv 之前,从 UTF-8 字符串中去除智能引号(或任何无效字符)的最快方法是什么?

  2. 或者,是否有更简单的解决方案来解决整个问题?将 UTF-8 中具有多种重音符号的名称转换为 ASCII 中没有重音符号且拼写正确的名称的最快方法是什么?

0 投票
27 回答
179574 浏览

php - 如何从 PHP 字符串中的字符中删除重音符号?

作为使字符串在 URL 中可用的第一步,我试图从 PHP 字符串中的字符中删除重音符号。

我正在使用以下代码:

我期望的输出是这样的:

但是,重音字符不会被音译,而是用问号代替:

我可以在网上找到的所有内容都表明设置区域设置将解决此问题,但是我已经在这样做了。我已经检查了以下详细信息:

  1. 服务器支持我设置的语言环境(包含在由 生成的列表中locale -a
  2. 服务器的 iconv 版本支持源和目标编码(UTF-8 和 ASCII)(包含在由 生成的列表中iconv -l
  3. 输入字符串是 UTF-8 编码的(使用 PHP 的mb_check_encoding函数验证,如mercator 的回答中所建议的)
  4. 调用setlocale成功(它返回'en_US.utf8'而不是FALSE

问题的原因:

服务器使用了错误的 iconv 实现。它具有glibc版本而不是所需的libiconv版本。

请注意,某些系统上的 iconv 功能可能无法按预期工作。在这种情况下,最好安装 GNU libiconv 库。它很可能最终会得到更一致的结果。
PHP手册对iconv的介绍

PHP 使用的 iconv 实现的详细信息包含在phpinfo函数的输出中。

(我无法在我正在为此项目使用的服务器上使用正确的 iconv 库重新编译 PHP,所以我在下面接受的答案是在没有 iconv 支持的情况下删除重音最有用的答案。)

0 投票
1 回答
600 浏览

php - 我应该对多字节字符串使用 mb_* 或 iconv_* 函数吗?

就像我们现在一样,在 PHP 中处理多字节字符串并不是那么容易。例如,我想获取以下字符串的长度:ä

我应该使用哪些功能?mb_* 还是 iconv_*?为什么?考虑到编码可能不限于UTF-8。

提前谢谢!

0 投票
7 回答
23796 浏览

macos - osx 更改文件编码(iconv)递归

我知道我可以使用以下方法在 OSX 下转换单个文件编码:

iconv -f ISO-8859-1 -t UTF-8 myfilename.xxx > myfilename-utf8.xxx

我必须转换一堆具有特定扩展名的文件,所以我想将文件夹 /mydisk/myfolder 中所有 *.ext 文件的文件编码从 ISO-8859-1 转换为 UTF-8

也许有人知道如何做到这一点的语法

谢谢

爱克

0 投票
3 回答
7536 浏览

php - 使用 PHP 读取 XLS 文件时的字符编码问题

我正在使用PHP-Excel-Reader库来读取一些 XLS 文件并立即遇到了这个问题:

PHP 通知: iconv()[function.iconv]:在第 1718 行的 C:\web\docs\housing\excel_reader2.php 中的输入字符串中检测到不完整的多字节字符

有问题的行是这样的:

在此之前我添加了一些调试信息来帮助诊断问题:

我尝试将 更改为_defaultEncoding任意数量的随机字符集,但显然没有帮助。

如果有人有任何线索,请帮忙!