当我执行下面的代码时,
mysql_connect("localhost", "user", "pass") or die("Could not connect: " . mysql_error());
mysql_select_db("database");
mysql_query ("set character_set_results='utf8'");
$result = mysql_query("SELECT xxx");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$str = $row[0];
echo $str;
}
如果我查看来源(中文字,UTF-8编码如下),我收到以下信息,
LS23A300BS(23”LED顯示器)/ LS22A300BS(21.5”LED顯示器)
但是,当我添加代码以将SQL结果转换为XML文件时,如下所示
$dom = new domDocument;
$dom->formatOutput = true;
$root = $dom->appendChild($dom->createElement( "items" ));
$sxe = simplexml_import_dom($dom);
mysql_connect("localhost", "user", "pass") or die("Could not connect: " . mysql_error());
mysql_select_db("database");
mysql_query ("set character_set_results='utf8'");
$result = mysql_query("SELECT xxx");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$item = $sxe->addChild("item");
$str = $row[0];
$item->addChild("desc", $str);
}
echo $sxe->asXML();
mysql_free_result($result);
如果我检查了来源(未知编码如下),我收到了以下信息,
LS23A300BS(23”LED顯示器)/ LS22A300BS(21.5”LED顯示器)
我想问,
未知编码的类型是什么?
如何将此未知编码更改回UTF-8?
由于
答案 0 :(得分:1)
要尝试两件事:
mysql_query('SET NAMES utf8');
代替character_set_results
。这为UTF8设置了一些关键的MySQL设置。new DOMDocument('1.0', 'UTF-8')
这是暂且的:你根本不需要DOMDocument
。试试$sxe = simplexml_load_string('<?xml version="1.0" encoding="utf-8"?><items/>');