PHP 的 xml 使用 gbk 编码出错

2019-04-16 09:45:20 +08:00
 ADANMEI

$xml = new \SimpleXMLElement('<aipg></aipg>');

错误是: Exception String could not be parsed as XML Previous exceptions SimpleXMLElement::__construct(): iconv : problems with filters for 'gbk' (0)

这是因为什么环境导致的,我的 php 版本是 php7.2

4220 次点击
所在节点    PHP
7 条回复
MeteorCat
2019-04-16 09:48:03 +08:00
是不是用了 gbk 的编码数据转 utf8
ADANMEI
2019-04-16 11:17:47 +08:00
我只是在初始化 SimpleXMLElement
ben1024
2019-04-16 11:24:57 +08:00
iconv("UTF-8", "GBK//IGNORE", $text);
ADANMEI
2019-04-16 12:49:37 +08:00
@ben1024 iconv(): Wrong charset, conversion from `UTF-8' to `GBK//IGNORE' is not allowed
utf-8 不被允许,我的 mbstring 拓展拓展是开启的
ADANMEI
2019-04-16 12:57:18 +08:00
docker-library/php#240 如果使用了 alpine 系统,libiconv 的版本会很低,需要更新一下 libiconv 的版本

在 dockerfile 中添加如下命令更新

RUN apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

原来是这个原因: https://github.com/aliyun/aliyun-oss-php-sdk/issues/97
ben1024
2019-04-16 14:07:55 +08:00
@ADANMEI
RUN apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php
ADANMEI
2019-04-16 14:38:13 +08:00
@ben1024 应该是这一个了
testing 改成了 community
谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/555579

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX