完美解析字符串和编码就像var_dump函数一样[复制]

问题描述 投票:0回答:1

这个问题在这里已有答案:

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; }

这不是我尝试过的所有内容,虽然这似乎产生了最好的结果(“?????”而不是完全跳过外国字符)

我到目前为止尝试过:

  • strsplit根据示例代码
  • 函数utf8_encode()
  • 实际上使用ob_start()var_dump回到字符串

我只需要以某种方式将任何字符串转换为UTF-8而不管存在什么编码...该函数可以在需要的时候使用,因为它不会是大量的一次

php encoding utf-8 character-encoding var-dump
1个回答
0
投票

经过更多的研究,https://github.com/voku/portable-utf8似乎涵盖了MOST基地,但是,我仍然无法使用阿拉伯语

© www.soinside.com 2019 - 2024. All rights reserved.