如何在PHP中转换、显示和存储这些字符?

如何在PHP中转换、显示和存储这些字符?,php,Php,我有这组代码,可以随机读取网页并将网页标题输出给用户,这取决于用户在url字段中输入的内容,可能是英文、中文、俄文或其他任何内容。但问题是它一直在显示乱码文本:ªù¸俎俎俎俎俎-谷歌ª俎俎俎÷ 任何有这个想法的人都将不胜感激 <!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php $DO

我有这组代码,可以随机读取网页并将网页标题输出给用户,这取决于用户在url字段中输入的内容,可能是英文、中文、俄文或其他任何内容。但问题是它一直在显示乱码文本:ªù¸俎俎俎俎俎-谷歌ª俎俎俎÷

任何有这个想法的人都将不胜感激

<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php

$DOM = new DOMDocument('1.0', 'UTF-8');

if( !@$DOM->loadHTMLFile( 'http://www.google.com.sg/search?hl=zh-CN&biw=1366&bih=636&q=%E9%83%AD%E5%AF%8C%E5%9F%8E&oq=%E9%83%AD%E5%AF%8C%E5%9F%8Ea&aq=f&aqi=g10&aql=undefined&gs_sm=e&gs_upl=6545l6545l0l1l1l0l0l0l0l295l295l2-1l1aa' ) ) {
    die('cannot load!');
}
else {
    $XPath = new DOMXPath( $DOM );
    $title = strip_tags( $XPath->query('//title')->item(0)->nodeValue );
    echo $title; exit;
}

?>


谷歌通过一些用户代理嗅探来选择合适的输出编码。我不确定用户代理PHP的DOMDocument使用什么以及返回的字符编码是什么,但您可以通过使用
oe=utf-8
URL参数强制进行特定的输出编码。

尝试将utf-8设置为PHP中的内容类型

header ('Content-type: text/html; charset=utf-8');

如果在查询字符串中添加
&oe=utf-8
,并在输出数据时使用,则应该可以解决您的问题:

$title = utf8_decode(strip_tags($XPath->query('//title')->item(0)->nodeValue));


您应该返回源页面使用的内容编码(或显式地将页面转换为utf-8)

您使用的是什么数据库服务器?检查正在使用的字符集。问题不在于数据库。这里没有数据库。我正在从php动态阅读一个网页。啊,对不起。你说得对。我显然没有仔细阅读这个问题。这完全不相关,也没有建设性,但我喜欢
@$DOM
使您的代码看起来像是在骂人。更具建设性的一点是,是否有可能文件
loadHTMLFile
接收的文件不是UTF-8,并且没有正确转换?我尝试将oe=UTF-8放入其中,结果不同,但仍然是乱码:(åååå-Googleæççççç@pakito:那么你可能不如UTF-8。我基本上已经用尽了我的选择。我甚至尝试过使用mbå转换ç编码($title,'UTF-8',mbçU检测ç编码($title,“ascii,cp1252,iso-8859-1,UTF-8”,true));如果您能就输出正确地向我提供建议,我将不胜感激。嘿,francois!谢谢!我以前一直使用utf8_编码。无论如何,感谢所有人的帮助和建议!抱歉,但是
utf8_解码
将UTF-8转换为ISO 8859-1,返回的输出绝对不能用ISO 8859-1编码。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />