アップロードされたファイルを扱う際に、私は奇妙なエンコーディングの問題に遭遇しています。非UTF8ファイル(Google CSVファイル)
私はあらゆる種類のテキストファイルを受け入れ、内容を読むことができる必要があります。特に、Google連絡先のエクスポートからダウンロードしたファイルに問題があります。
私は通常のutf8_encode/decode、mb_detect_encodingなどを行っています。文字列がUTF-8であるかのように常に戻り、多くのiconvオプションを試してエンコードを元に戻しましたが失敗しました。
test.phpを
header('Content-type: text/html; charset=UTF-8');
if ($stream = fopen($_FILES['list']['tmp_name'], 'r'))
{
$string = stream_get_contents($stream);
fclose($stream);
}
echo substr($string, 0, 50);
var_dump(substr($string, 0, 50));
echo base64_encode(serialize(substr($string, 0, 50)));
出力私はbase64でピースをデコード
��N�a�m�e�,�G�i�v�e�n� �N�a�m�e�,�A�d�d�i�t�i�o�n�
��N�a�m�e�,�G�i�v�e�n� �N�a�m�e�,�A�d�d�i�t�i�o�n�
czo1MDoi//5OAGEAbQBlACwARwBpAHYAZQBuACAATgBhAG0AZQAsAEEAZABkAGkAdABpAG8AbgAiOw==
エンコードエラーがあまりにも曖昧です。私たちには例が必要です。 'base64_encode(serialize($ excerpt))'をここに投稿してみてください。 – mario
例を抜粋して更新しました。 – James
$ stringはどこから来たのですか?それを取得するために使用しているコードを表示できますか?これを出力するエンコードは何ですか? –