gpt4 book ai didi

PHP export MySQL to xml 非英文字符在浏览器中显示为 `?`

转载 作者:行者123 更新时间:2023-11-29 03:04:50 26 4
gpt4 key购买 nike

用php需要把mysql的数据导出到xml。我知道 htmlspecialchars(如果是 print/echo);后者会做。

现在的问题是如何正确显示非英文字符。

MySQL 编码是“UTF-8”。

在 MySQL 中,非英文字符可以正确显示。

这是我的代码

header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
header('Content-Type: text/xml');

//.... mysql connect, select

$DOM = new DOMDocument('1.0','UTF-8');
$root = $DOM->createElement('корневой');
$DOM->appendChild($root);

while ($row = mysql_fetch_assoc($res)) {
$child11 = $DOM->createElement('вложенный',mb_convert_encoding($row['TransactionPartnerName'], "UTF-8") );
$root->appendChild($child11);
$child_att11 = $DOM->createAttribute('vārds');
$child11->appendChild($child_att11);
$att_text11 = $DOM->createTextNode('Value attribute11');
$child_att11->appendChild($att_text11);
}

echo $DOM->saveXML();

这里的非英文字符 $root = $DOM->createElement('корневой'); 在浏览器中正确显示。

但是这个 $child11 = $DOM->createElement('вложенный',mb_convert_encoding($row['TransactionPartnerName'], "UTF-8") ); 显示 ? 而不是非英语字符(我的意思是这个 вложенный 正确显示,而不是来自这个 $row['TransactionPartnerName'] 的非英语字符 get ?)。

之前有$child11 = $DOM->createElement('child11',$row['TransactionPartnerName']); 得到在文本内容中发现无效字符。 IE 中处理资源错误

添加mb_convert_encoding时没有警告,但显示?

尝试进行实验并保存。更改为 $DOM->save("test1.xml"); test1.xml 看起来像这样

<?xml version="1.0" encoding="UTF-8"?>
<корневой>
<вложенный vārds="Value attribute11">AUTOMOTIVE</вложенный>
<вложенный vārds="Value attribute11">???????</вложенный>
</корневой>

您看到 ???????? 并且在 MySQL 中是 русский 而不是这些 ?

关于如何正确显示/保存非英文字符有什么想法吗?

更新根据mysql_connect添加

后的提示
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'");

和所有作品。可以使用 MySQL,但据我所知,对于 PDO 必须使用其他代码。无论如何似乎都能理解问题出在哪里。谢谢

最佳答案

使用 mysql_set_charset('utf8') 从数据库中获取 UTF-8 编码的结果。

关于PHP export MySQL to xml 非英文字符在浏览器中显示为 `?`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17378552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com