这个问题在这里已有答案:
TLDR;我需要一些关于如何将任何编码重新编码为UTF-8的指导,即使输入中存在多个字符集也是如此
我已经在互联网上搜寻过,我在任何地方找不到这样的东西......
基本上我在这里生成一个输入:https://mockaroo.com/使用“Naughty String”类型,我已经将1000行放入.txt文件
在将file_get_contents转换为php之后,我在PHP_EOL上爆炸了,留下了一个完美的1000长度数组
如果我var_dump数组,我得到各种漂亮的字符,包括阿拉伯语,图标,中文,一切基本上......
我似乎无法复制var_dump函数正在进行的转换,以便能够在HTML中显示它。这很重要,因为我正在建立一个用户输入的跨国网站。
我当前的代码如下所示:
function purge_user_input($string){
#Problem section
$array = str_split($string);
foreach($array as $str){
$var[]=mb_convert_encoding($ray,"UTF-8",mb_detect_encoding($str,mb_list_encodings()));
}
$string = implode("",$var);
#End problem section
while(htmlspecialchars_decode($string)!==$string){
$string=htmlspecialchars_decode($string);
}
$string=strip_tags($string);
$string = preg_replace('/[\\x80-\\xFF]+/', '', $string);
$string=trim(htmlspecialchars($string,ENT_QUOTES,"UTF-8",FALSE));
return $string;
}
这不是我尝试过的所有内容,虽然这似乎产生了最好的结果(“?????”而不是完全跳过外国字符)
我到目前为止尝试过:
我只需要以某种方式将任何字符串转换为UTF-8而不管存在什么编码...该函数可以在需要的时候使用,因为它不会是大量的一次
经过更多的研究,https://github.com/voku/portable-utf8似乎涵盖了MOST基地,但是,我仍然无法使用阿拉伯语