zoukankan      html  css  js  c++  java
  • PHP中SimpleXMLElement对象字符编码

    最近在使用SimpleXMLElement来生成和解析XML。

    由于我们使用PHP开发的这边使用UTF-8编码,而对方使用GBK编码,因此就遇到了中文字符编码问题。

    后来发现,XML内部的编码与其头

    <?xml version="1.0" encoding="gbk" ?>

    中声明的编码有绝对的关系,UTF-8编码的中文字符写入到对象中,asXML方法返回的字符串就是GBK的,无需转换,反之亦然。

    推荐在PHP里操作XML的童鞋们使用SimpleXMLElement对象,不要直接连接字符串了

    例:

    $strXml = '<?xml version="1.0" encoding="gbk" ?>
        <SnsPropSet></SnsPropSet>';                 
    $objXml = simplexml_load_string($strXml);       
    $objXml->addAttribute('SnsCID', $this->intCid); 
    $objXml->addAttribute('SnsTID', $this->intTid); 
    $objXml->addAttribute('SnsPID', $this->intPid); 
                                                    
    $intCount = $strCount = 0;                      
    if (is_int($mixSnsAttrVal)) {                   
        $objXmlChild = $objXml->addChild('PropInt');
        $intCount++;                                
    } else {                                        
        $objXmlChild = $objXml->addChild('PropDyn');
        $strCount++;                                
    }                                               
                                                    
    $objXmlChild->addAttribute('ID', $intSnsAttrId);
    $objXmlChild->addAttribute('V', $mixSnsAttrVal);
    $objXml->addAttribute('PropIntC', $intCount);   
    $objXml->addAttribute('PropDynC', $strCount);   
                                                    
    $strXml = $objXml->asXML();
  • 相关阅读:
    jquery animate()方法 语法
    jquery unload方法 语法
    jquery undelegate()方法 语法
    jquery unbind()方法 语法
    jquery trigger() 方法 语法
    jquery toggle()方法 语法
    jquery change() 函数 语法
    jquery blur()函数 语法
    jquery bind()方法 语法
    jquery checked选择器 语法
  • 原文地址:https://www.cnblogs.com/walter371/p/6441364.html
Copyright © 2011-2022 走看看