我有一个这样的字符串:
<div class="myclass">
ما قصد داریم تنها کاراکترهای فارسی را خارج کنیم. اما مشکلاتی پیش رو داریم, از جمله کاراکترهای خاص. آیا راهی هست؟ لطفا راهنمایی کنید.
</div>
现在我希望我的输出像这样:
ما قصد داریم تنها کاراکترهای فارسی را خارج کنیم اما مشکلاتی پیش رو داریم از جمله کاراکترهای خاص آیا راهی هست لطفا راهنمایی کنید
我无法使用str_replace
或preg_replace
,因为有些时候我的输出中有�
这样的字符
答案 0 :(得分:0)
您可能需要使用多字节字符串函数。
请参阅:http://php.net/manual/en/ref.mbstring.php
您的波斯语字符串使用多字节字符编码,而str_replace()无法正确处理(除非它是UTF-8,请参阅下面的注释)。
还有更多问题:
1确保在服务器上以正确的字符编码存储PHP文件(标记为Mark)。
2还要确保在HTML输出中发送正确的标题,例如:
<head>
<meta charset="UTF-8">
</head>
使用UTF8时。并且还在PHP中执行:
header('Content-Type: text/html; charset=utf-8');
一切都必须正确,否则无效。处理字符编码可能非常困难。你见过mb_detect_encoding()
函数了吗?在原始字符串上使用它来学习它的编码。