2012-03-13 95 views
0

我我的形式正从textarea的输入特殊字符访问textarea的内容时特殊字符在PHP

所以,如果我输入下面的文本

菲尔布里克,其“大洋深处: Whaleship Essex的悲剧“叙述了梅尔维尔 沉船的真实灵感,轻描淡写地学习了他的博学。

当我在php中访问它时,我得到以下内容。

菲尔布里克,其“In海之心:在 WhaleshipEssexâ€悲剧讲述了 Melville’的沉船现实生活中的灵感,举重若轻地博学。

在访问文本之前,我尝试了下面的内容,但替换不起作用。当我将 复制粘贴到代码或其他东西中时,这些特殊字符不匹配吗?

$string = htmlspecialchars($_POST["t"]) ; 
$string = html_entity_decode($string, ENT_QUOTES, "UTF-8"); 
$string = str_replace('“', "\"", $string); 
$string = str_replace('’', "'", $string); 

回答

1

您所看到的内容可能没有任何问题。您可能不需要用修正或其他方式来修改$ _POST。这可能是因为你正在寻找准系统浏览器输出。

在你用类似print_r($_POST); die;随地吐痰出来调试这种情况下,请确保它上面的地方在你的页面你有元一行字符编码设置为UTF-8:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

这将确保智能角色(大概是从某处粘贴的)在屏幕上正确渲染。

完全无关:优秀的书,顺便说一句。用憔悴的水手囤积他们的骨头来爱起始场景。

+0

像魅力工程!非常感谢!!! – vaichidrewar 2012-03-13 20:19:13

1

实际上,你不是一个普通的单引号和双引号,但有些花哨的Unicode版本: &#x201c; &#x201d &#x2019

尝试utf8_decode。顺便说一句你使用什么编码,Windows-1250

+0

如何找到正在使用的编码?我尝试过它制作的utf8_decode:Philbrick,他的“在海洋的心脏:鲸鱼艾塞克斯的悲剧”讲述了梅尔维尔沉船的真实灵感,轻描淡写地学习了他的博学。那么现在输出中的特殊字符是不同的? – vaichidrewar 2012-03-13 20:06:18

+0

echo“编码方案是:”。 mb_detect_encoding($字符串);产生的UTF-8 – vaichidrewar 2012-03-13 20:08:55