私はgzipされた文字列をC#(SharpZipLibを使用)からPHPに送ってreadgzfileで解凍します。これは動作しますが、文字列の各文字の後ろに2つの奇妙な文字が続きます(コンソールでvimを使用すると、^@
と表示されます)。私もgzopen/gzreadを試しましたが、同じ結果でした。PHPでは、圧縮されたgz文字列の各文字の後に^ @、なぜですか?
$clean= preg_replace('/[^(\x20-\x7F)]*/','', $string);
の文字列から非ASCII文字を消去すると、$ clean文字列はC#の文字列と同じになります。
これは機能しますが、何が起こっているのか、なぜこれが問題なのかを知りたいのですが、これが常に機能するか、より良い解決策が出てくるかどうかを確認したいと思います。
は、おそらくあなたのソースUCS2の文字列またはUTF-16ましたか? – mario
特定のエンコーディングには適用されていません。おそらく、私はどんなエンコーディングを使うべきですか? – Whiskey