TLDR;我需要一些有关如何将任何编码重新编码为UTF-8的指导,即使输入中存在多个字符集
我已经在互联网上拖网捕捞,在任何地方都找不到类似的东西...
基本上,我在这里生成了一个输入:https://mockaroo.com/使用“顽皮的字符串”类型,并且我已经将1000行输入到.txt文件中
在将file_get_contents-ing入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,无论使用哪种编码方式...该功能实际上可能需要花费很长的时间,因为它不会立即大量存储