ADANMEI
V2EX  ›  PHP

PHP 的 xml 使用 gbk 编码出错

  •  
  •   ADANMEI · Apr 16, 2019 · 4881 views
    This topic created in 2587 days ago, the information mentioned may be changed or developed.

    $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 replies    2019-04-16 14:38:13 +08:00
    MeteorCat
        1
    MeteorCat  
       Apr 16, 2019 via Android
    是不是用了 gbk 的编码数据转 utf8
    ADANMEI
        2
    ADANMEI  
    OP
       Apr 16, 2019
    我只是在初始化 SimpleXMLElement
    ben1024
        3
    ben1024  
       Apr 16, 2019
    iconv("UTF-8", "GBK//IGNORE", $text);
    ADANMEI
        4
    ADANMEI  
    OP
       Apr 16, 2019
    @ben1024 iconv(): Wrong charset, conversion from `UTF-8' to `GBK//IGNORE' is not allowed
    utf-8 不被允许,我的 mbstring 拓展拓展是开启的
    ADANMEI
        5
    ADANMEI  
    OP
       Apr 16, 2019
    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  
       Apr 16, 2019   ❤️ 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
       Apr 16, 2019
    @ben1024 应该是这一个了
    testing 改成了 community
    谢谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3123 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 13:19 · PVG 21:19 · LAX 06:19 · JFK 09:19
    ♥ Do have faith in what you're doing.