我正在使用PHP 7.2.10在php中导入一个大文件,但是有些字符串带有“ b”(二进制)前缀,例如:
$str = b"PRAÇA";
将该字符串保存在mongodb中时,将引发异常:
为字段路径“ $ set.field”检测到无效的UTF-8:PRA.A
如果我运行mb_detect_encoding($ str),它将返回“ UTF-8”。
如果我运行iconv(mb_detect_encoding($ str),“ UTF-8 // IGNORE”,$ str),它将返回“ PRAA”。是的,我知道“ // IGNORE”将忽略非utf8字符。
我该怎么做才能返回字符串PRAÇA?
我真的需要那个字符串。
谢谢。
答案 0 :(得分:0)
您可以使用类似这样的内容:
function binaryToString($binary)
{
$binaries = explode(' ', $binary);
$string = null;
foreach ($binaries as $binary) {
$string .= pack('H*', dechex(bindec($binary)));
}
return $string;
}