Den*_*del 6 php xml asp-classic
当我使用ASP Classic脚本生成XML文件,并在PHP页面中导入XML文件时,导入过程正常.
但是,当我通过PHP脚本(而不是ASP Classic)生成相同的XML并在同一个导入过程中使用它时,它就无法正常工作.
$xml = iconv("UTF-16", "UTF-8", $xml);
Run Code Online (Sandbox Code Playgroud)
我在导入过程中注意到:
$xml = iconv("UTF-16", "UTF-8", $xml);在我的代码中的行之前,XML文件的格式正确.$xml = iconv("UTF-16", "UTF-8", $xml);在行之后,XML文件已损坏.当我评论这行代码并使用PHP XML文件时,它工作正常.
当你这样做时会发生什么:
$xml = iconv("UTF-16", "UTF-8//IGNORE", $xml);
Run Code Online (Sandbox Code Playgroud)
?
如果该过程在您确定的位置失败,则表示从 UTF-16 到 UTF-8 的转换失败,这意味着输入字符串中有一个或多个字符没有 UTF-8 表示形式。“//IGNORE”标志会默默地删除这些字符,这显然很糟糕,但使用该标志有助于查明我认为的问题是否确实如此。您还可以尝试音译失败的字符:
$xml = iconv("UTF-16", "UTF-8//TRANSLIT", $xml);
Run Code Online (Sandbox Code Playgroud)
字符将被近似,所以你至少会保留一些东西。请参阅此处的示例: http: //www.php.net/manual/en/function.iconv.php
综上所述,UTF-16 是 XML 内容可接受的字符集。你为什么要转换它?