PHP str_replace 删除无意中删除汉字
PHP str_replace removing unintentionally removing Chinese characters
我有一个PHP脚本可以删除特殊字符,但不幸的是,一些汉字也被删除了。
<?php
function removeSpecialCharactersFromString($inputString){
$inputString = str_replace(str_split('#/\:*?\"<>|[]\'_+(),{}’! &'), "", $inputString);
return $inputString;
}
$test = '赵景然 赵景然';
print(removeSpecialCharactersFromString($test));
?>
奇怪的是,输出是 赵然 赵然
。字符 景
被删除
此外,陈 一
也被删除。可能的原因是什么?
您用作要替换的内容列表的字符串不适用于混合编码。我所做的是将此字符串转换为 UTF16,然后拆分它。
function removeSpecialCharactersFromString($inputString){
$inputString = str_replace(str_split(
mb_convert_encoding('#/\:*?\"<>|[]\'_+(),{}’! &', 'UTF16')), "", $inputString);
return $inputString;
}
$test = '#赵景然 赵景然';
print(removeSpecialCharactersFromString($test));
这给...
赵景然赵景然
顺便说一句 -str_replace
是 MB 安全的 - 有点认出了发帖人...... http://php.net/manual/en/ref.mbstring.php#109937
我有一个PHP脚本可以删除特殊字符,但不幸的是,一些汉字也被删除了。
<?php
function removeSpecialCharactersFromString($inputString){
$inputString = str_replace(str_split('#/\:*?\"<>|[]\'_+(),{}’! &'), "", $inputString);
return $inputString;
}
$test = '赵景然 赵景然';
print(removeSpecialCharactersFromString($test));
?>
奇怪的是,输出是 赵然 赵然
。字符 景
被删除
此外,陈 一
也被删除。可能的原因是什么?
您用作要替换的内容列表的字符串不适用于混合编码。我所做的是将此字符串转换为 UTF16,然后拆分它。
function removeSpecialCharactersFromString($inputString){
$inputString = str_replace(str_split(
mb_convert_encoding('#/\:*?\"<>|[]\'_+(),{}’! &', 'UTF16')), "", $inputString);
return $inputString;
}
$test = '#赵景然 赵景然';
print(removeSpecialCharactersFromString($test));
这给...
赵景然赵景然
顺便说一句 -str_replace
是 MB 安全的 - 有点认出了发帖人...... http://php.net/manual/en/ref.mbstring.php#109937