【问题标题】:How save xml file with UTF-8 by php SimpleXMLElement如何通过 php SimpleXMLElement 使用 UTF-8 保存 xml 文件
【发布时间】:2017-05-15 17:21:58
【问题描述】:

我想用 php SimpleXMLElement 创建 sitemap.xml 文件。但是当我的链接包含波斯语(波斯语)语言时,我遇到了问题。输出文件将 persain 字改为问号 (????)。

我如何通过SimpleXMLElement 保存带有 utf-8 的 xml 文件?

我的示例代码是:

 $a='<?xml version="1.0" encoding="UTF-8" ?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">

    <url>
       <loc>www.example.com/page-test/صفحه-تست/</loc>
       <changefreq>daily</changefreq>
       <priority>0.95</priority>
    </url>
</urlset>';
    $xml= new SimpleXMLElement($a);
    $xml->asXML("sitemap.xml");

这样的输出:

<loc>www.example.com/page-test/?????-?????/</loc>

【问题讨论】:

    标签: php xml utf-8 simplexml


    【解决方案1】:

    我认为你在这里使用urlencode()htmlentities() 是正确的方法,编码整个路径,而不仅仅是特殊字符。

    Demo here.

    www.example.com%2Fpage-test%2F%D8%B5%D9%81%D8%AD%D9%87-%D8%AA%D8%B3%D8%AA%2F
    

    【讨论】:

    • 他正在使用 SimpleXML。您的回答没有解决问题
    • 虽然是xml,但也是php类,为什么可以调用php函数urlencode()?
    • 好吧,让你的代码与问题相关。他有一个有效的代码示例。向他展示如何将其与 SimpleXML 一起使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 2012-05-08
    • 2011-05-01
    相关资源
    最近更新 更多