在PHP中将“二进制”字符串转换为“常规”字符串以保存在mongodb中

时间:2019-01-18 01:48:01

标签: php mongodb php-7 php-7.2

我正在使用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?

我真的需要那个字符串。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用类似这样的内容:

function binaryToString($binary)
{
    $binaries = explode(' ', $binary);
 
    $string = null;
    foreach ($binaries as $binary) {
        $string .= pack('H*', dechex(bindec($binary)));
    }
 
    return $string;    
}
相关问题