如何在php中清除波斯语字符串
我有这样一个字符串:如何在php中清除波斯语字符串,php,string,Php,String,我有这样一个字符串: <div class="myclass"> ما قصد داریم تنها کاراکترهای فارسی را خارج کنیم. اما مشکلاتی پیش رو داریم, از جمله کاراکترهای خاص. آیا راهی هست؟ لطفا راهنمایی کنید. </div> 我不能使用str\u replace或preg\u replace,因为有时会出现类似�在我的输出中您可能需要使用多字节
<div class="myclass">
ما قصد داریم تنها کاراکترهای فارسی را خارج کنیم. اما مشکلاتی پیش رو داریم, از جمله کاراکترهای خاص. آیا راهی هست؟ لطفا راهنمایی کنید.
</div>
我不能使用
str\u replace
或preg\u replace
,因为有时会出现类似�
在我的输出中您可能需要使用多字节字符串函数
见:
您的波斯语字符串使用多字节字符编码,str_replace()无法正确处理(除非是UTF-8,请参阅下面的注释)
还有更多的问题:
1确保在服务器上以正确的字符编码存储PHP文件(按标记提示)
2还要确保在HTML输出中发送正确的标题,例如:
<head>
<meta charset="UTF-8">
</head>
一切都必须是正确的,否则就行不通了。处理字符编码可能相当困难。您见过
mb\u detect\u encoding()
功能吗?在原始字符串上使用此选项学习其编码。如果它是UTF-8,则str_replace()
和friends可以正常工作。您只需要使用mb
函数进行编码,以允许在字符表示的不同部分使用相同的字节值。这是不正确的。问题是是否可以继续使用mb
作为str_replace()
?标题('Content-Type:text/html;charset=utf-8')代码>这不起作用too@Mark:这可能是真的,但user3932710使用的是哪种编码?我们不知道。可能是他没有向客户发送正确的字符编码。
<head>
<meta charset="UTF-8">
</head>
header('Content-Type: text/html; charset=utf-8');