【发布时间】:2013-07-20 17:04:52
【问题描述】:
我不确定我的脚本的哪一部分实际上是错误的,但是我在解析带有 unicode 字符的推文文本时遇到了一些困难:
推文示例:
Landsliðsmaður með viti. #rafhlaða #hræddur http://t.co/ci03F3vUNM
当我使用 twitteroauth 获取它并将其保存到 .txt 文件时,此字符串在文件中转换为:
Landsli\u00f0sma\u00f0ur me\u00f0 viti. #rafhla\u00f0a #hr\u00e6ddur http:\/\/t.co\/ci03F3vUNM
我正在使用简单的preg_replace
用超链接替换文本
function twitterify($ret) {
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r< ]*)#", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
$ret = preg_replace("/@(\w+)/", "<a href=\"http://www.twitter.com/\\1\" target=\"_blank\">@\\1</a>", $ret);
$ret = preg_replace("/#(\w+)/", "<a href=\"http://search.twitter.com/search?q=\\1\" target=\"_blank\">#\\1</a>", $ret);
return $ret;
}
但是只要遇到以下 unicode 字符之一就会失败:#rafhlaða 变为 <a href="#">#rafhla</a>ða#hræddur 变为 <a href="#">#hr</a>æddur
和类似的。
我在这里做错了什么?使用 PHP 保存/打开我的文本文件或解析 unicode 编码字符串?
【问题讨论】: