我有这个文字......
“我不想让自己变得可信,”大卫微笑着宽容地承认“
...我想删除那些有趣的角色,我已经尝试了str_replace()
但它不起作用。
有什么想法吗?
答案 0 :(得分:2)
您可能使用与源编码不同的编码处理文本。
因此,如果文本是UTF-8,那么您目前不会将其作为UTF-8处理。最简单的方法是发送一个标题,如...
header('Content-Type: text/html; charset=UTF-8');
您还可以添加meta
元素,但请确保它是head
元素的第一个子元素。
你需要在源头修复它,而不是稍后尝试修补它(这将永远不会有效)。
答案 1 :(得分:2)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...
</head>
不同的源通常具有不同的编码,因此您需要指定要在其中呈现视图的编码。 Utf-8是最受欢迎的,因为它涵盖了所有ASCII和许多其他语言。
php的utf8_(de)编码将iso-8859-1转换为utf-8,而相反且常规的字符串操作函数不是多字节 - (utf-8可以)字符识别。您可以使用特定于mb_strings的函数或使用某些参数启用编码。
//如果我弄错了评论
答案 2 :(得分:0)
嗯,你正在使用你应该使用的不同字符编码(你应该使用utf-8编码),所以我会改变它,而不是试图通过快速修复现场修复它(你总体上会遇到更少的问题。)
如果你真的想用PHP修复它,你可以使用ctype_alpha()函数;你应该可以做这样的事情:
$theString = "your text here"; // your input string
$newString = ""; // your new string
$i = 0;
while($theString[$i]) // while there are still characters in the string
{
if(ctype_alpha($theString[$i]) // if it's a character in your current set
{
$newString .= $theString[$i]; // add it to the new string, increment pointer, and go to next loop iteration
$i++;
continue;
} // if the specific character at the $i index is an alphabetical character, add it to the new string
else
{
$i++;
} // if it's a bad character, just move the pointer up by one for the next iteration
}
然后根据需要使用$ newString。实际上,只需改变你的角色编码而不是这样做。您希望整个项目中的编码相同。