linux iconv方法的使用

本文介绍了一种在Linux环境下使用iconv方法进行编码转换时遇到的问题及解决方案。问题表现为iconv方法总是返回false,解决方法有两种:一是将iconv替换为mb_convert_encoding;二是修改iconv的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天同事遇见一个比较怪异的问题:

使用iconv方法进行编码转换。在windows平台下面可以正常的工作(本地环境使用的win7),但是在linux环境下面iconv总是返回false(测试环境使用的linux)。

参考phpinfo的信息,iconv模块也已经正确加载。

google一下。原来才知道,原来在linux版本下iconv这个方法还是有点小问题的。

csdn上的一个网友给出的解决方案为:

一种方法是把iconv换成 mb_convert_encoding 
另一种方法是修改iconv 的实现,从glibc 改为libiconv
搞了半天,烦躁!
有朋友碰到的话,也可以这么解决了

按照该网友提供的第一个方法,将iconv方法修改为使用mb_convert_encoding,搞定。。

多谢该网友提供的解决方案。


参考网站:

http://topic.youkuaiyun.com/u/20090401/21/814cf7aa-f07c-4e3d-8d66-dc77f26b2d40.html

http://hi.baidu.com/xu_jack/blog/item/93e493ecba98022c269791bb.html

### 使用 `iconv` 命令进行字符编码转换 #### 指定源编码和目标编码 为了执行字符编码转换,可以使用 `-f` 参数来指定源编码格式,并使用 `-t` 参数来定义目标编码格式。例如,要将 GBK 编码的文件转换为 UTF-8 编码,可运行如下命令: ```bash iconv -f GBK -t UTF-8 inputfile.txt -o outputfile.txt ``` 此操作会读取名为 `inputfile.txt` 的文件并将其内容从 GBK 编码转成 UTF-8 编码后保存到新的文件 `outputfile.txt` 中[^1]。 #### 处理标准输入与输出 如果希望直接通过管道传递数据而不涉及具体文件,则可以直接省略输入文件名参数,此时程序将会等待来自标准输入的数据流;同样地,在不提供输出文件的情况下,默认情况下经过转换后的文本会被打印至终端屏幕而非写入磁盘上的某个特定位置。下面的例子展示了如何把剪贴板中的文字由 ISO-8859-1 (Latin1) 变更为 BIG5 并显示出来: ```bash echo "Some Latin text here." | iconv -f ISO-8859-1 -t BIG5 ``` 对于那些想要即时查看效果而不想创建临时文件的人来说非常方便[^2]。 #### 列举所有可用编码列表 有时可能不清楚应该选用哪种确切的目标编码名称,这时可以通过调用带有 `--list` 或者 `-l` 选项的形式让 `iconv` 自动罗列其内部所支持的所有字符集供查阅参考: ```bash iconv --list ``` 上述指令能帮助找到合适的编码方案以便后续应用时更加精准无误[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值