gpt4 book ai didi

c# - 在PHP中,解压后的gz字符串中每个字符后面都有^@,为什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:50:36 26 4
gpt4 key购买 nike

我从 C#(使用 SharpZipLib)发送一个 gzip 字符串到 PHP,然后我用 readgzfile 解压缩。这是可行的,但是字符串中的每个字符后跟两个奇怪的字符(在控制台中使用 vim,这些字符显示为 ^@)。我也试过 gzopen/gzread 但结果相同。

当我使用 $clean= preg_replace('/[^(\x20-\x7F)]*/','', $string); 清除字符串中的非 ASCII 字符时$clean 字符串与 C# 中的相同。

虽然这有效,但我想知道发生了什么以及为什么这样我可以确保它始终有效或提出更好的解决方案。

最佳答案

鉴于该字符串是在 Windows 上创建的,很可能正在使用一些多字节编码。

您可以使用 bin2hex($string) 自行验证并检查十六进制表示,而不是依赖 vim。

如果正在使用 UTF-16UCS2,您可以像这样转换它们:

// iconv($from, $to, $str)
$clean = iconv('UTF-16', 'UTF-8', $string);

关于c# - 在PHP中,解压后的gz字符串中每个字符后面都有^@,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13019310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com