我从表单上的textarea输入中获得特殊字符。
所以如果我输入下面的文字
菲尔布里克,他的“在海洋的中心:艾塞克斯号的悲剧”讲述了梅尔维尔沉船事件的真实灵感,他轻轻地带着他的博学。
当我在php中访问它时,我会得到以下内容。
菲尔布里克,他的“海之心:艾塞克斯号的悲剧”中的欧罗·菲尔布里克(œ),讲述了梅尔维尔·欧罗(Melville Euro™)的沉船事件的现实启示,他轻描淡写地带着他的博学。
在访问文本之前,我尝试了下面的内容,但“替换”不起作用。当我复制时,这些特殊字符是不是不匹配,粘贴代码中的那些字符,或者其他缺少的东西?
$string = htmlspecialchars($_POST["t"]) ;
$string = html_entity_decode($string, ENT_QUOTES, "UTF-8");
$string = str_replace('“', "\"", $string);
$string = str_replace('’', "'", $string);发布于 2012-03-13 20:09:25
你所看到的可能没有什么问题。您可能不需要用need实体更正或其他方式损坏$_POST。这可能是因为您正在查看一个基本的浏览器输出。
如果您正在通过使用类似于print_r( $_POST ); die;的东西来调试它,请确保在页面中的某个位置有一个元行将字符编码设置为UTF-8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
这将确保智能字符(可能是从某个地方粘贴的)在屏幕上正确呈现。
完全无关:优秀的书,BTW。喜欢开始的场景,憔悴的水手囤积他们的骨头。
发布于 2012-03-13 19:55:04
实际上,您没有普通的单引号和双引号,而是一些奇特的unicode版本:“”
试试utf8_decode。顺便说一句,你用什么编码,Windows-1250
https://stackoverflow.com/questions/9690902
复制相似问题