V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ADANMEI
V2EX  ›  PHP

PHP 的 xml 使用 gbk 编码出错

  •  
  •   ADANMEI · 2019-04-16 09:45:20 +08:00 · 4250 次点击
    这是一个创建于 2074 天前的主题,其中的信息可能已经有所发展或是发生改变。

    $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

    7 条回复    2019-04-16 14:38:13 +08:00
    MeteorCat
        1
    MeteorCat  
       2019-04-16 09:48:03 +08:00 via Android
    是不是用了 gbk 的编码数据转 utf8
    ADANMEI
        2
    ADANMEI  
    OP
       2019-04-16 11:17:47 +08:00
    我只是在初始化 SimpleXMLElement
    ben1024
        3
    ben1024  
       2019-04-16 11:24:57 +08:00
    iconv("UTF-8", "GBK//IGNORE", $text);
    ADANMEI
        4
    ADANMEI  
    OP
       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
        5
    ADANMEI  
    OP
       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
        6
    ben1024  
       2019-04-16 14:07:55 +08:00   ❤️ 1
    @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
        7
    ADANMEI  
    OP
       2019-04-16 14:38:13 +08:00
    @ben1024 应该是这一个了
    testing 改成了 community
    谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1149 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:46 · PVG 02:46 · LAX 10:46 · JFK 13:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.