【问题标题】:DOMDocument Preserve ASCII Encoding?DOMDocument 保留 ASCII 编码?
【发布时间】:2012-09-18 13:53:36
【问题描述】:

好的,我有一个名为“temp.xml”的文件,其中包含大约 100 个条目。这是一个子条目的示例..

<title>&#169; 2008 Some Company</title>

现在,我想在“title”中获取确切的内容,但是通过这样做......

$doc = new DOMDocument();
$doc->load('temp.xml');
foreach ($doc->getElementsByTagName('entry') as $node) {
echo $node->getElementsByTagName('title')->item(0)->nodeValue;
}

我明白了……

© 2008 Some Company

我想要...

&#169; 2008 Some Company

Php 正在转换 ASCII 字符,我希望它们完好无损。我在谷歌上搜索了两个多小时,但无济于事......

【问题讨论】:

  • 'Â' 的字符代码为 195。我猜不出你为什么也有那个字符。
  • 如果 php 页面将输出作为网页写入浏览器。绝对不会看到“©”,因为这是html实体,所以浏览器会将其显示为字符
  • 我知道浏览器会将其显示为字符,但我想将其保存到数据库中...
  • 你的xml文件的编码是什么?
  • 我想答案就在这里:perlmonks.org/?node_id=803529

标签: php xml encoding ascii domdocument


【解决方案1】:

好的,似乎使用 XAMPP 与 MySql 的连接不是在 UTF-8 中完成的......所以这就是解决我的问题的方法......

$link2 = mysql_connect('localhost', 'root', '');
mysql_set_charset('utf8',$link2); //Set the connection to UTF-8
mysql_select_db('mydb') or die( "Unable to select database");
$doc = new DOMDocument();
$doc->load('temp.xml');
foreach ($doc->getElementsByTagName('entry') as $node) {
$title = $node->getElementsByTagName('title')->item(0)->nodeValue;
$query = "INSERT INTO sb_temp (id, title) VALUES ('', '$title')";
$result = mysql_query($query);
}

我只是简单地设置mysql连接... mysql_set_charset('utf8',$link2);现在数据按原样保存。否则,例如“©”符号被保存为“©”。无论如何感谢您的帮助:]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2019-05-01
    • 2012-02-05
    相关资源
    最近更新 更多