在php中访问textarea内容时的特殊字符

时间:2012-03-13 19:42:19

标签: php string textarea html-form

我从表单上的textarea输入中获取特殊字符

所以,如果我输入以下文字

  

菲尔布里克,他的“在海中:悲剧的悲剧”   Whaleship Essex“讲述了梅尔维尔的真实灵感   沉船,轻轻地磨损他的博学。

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

  

菲尔布里克,他的“在海的中心:悲剧的悲剧”   Whaleship Essex-讲述了真实的灵感   梅尔维尔的海难,轻轻地磨损他的博学。

我在访问文本之前尝试了以下操作,但是替换不起作用。当我这些特殊字符不匹配时 我复制粘贴代码中的那些或其他缺失的东西?

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

2 个答案:

答案 0 :(得分:1)

你实际上没有普通的单引号和双引号,但是有些花哨的unicode版本: &安培;#x201c; &#x201d&#x2019

试试utf8_decode。 BTW你使用什么编码,Windows-1250

答案 1 :(得分:1)

您所看到的内容可能没有任何问题。您可能不需要使用htmlentities更正或其他方式来破坏$ _POST。可能是您正在查看准系统浏览器输出。

如果您通过使用print_r( $_POST ); die;之类的内容将其调出来进行调试,请确保在页面上方的某处将元字符编码设置为UTF-8:

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

这将确保智能角色(可能是从某个地方粘贴)在屏幕上正确呈现。

完全不相关:优秀的书,BTW。喜欢开始的场景,憔悴的水手囤积成堆的骨头。