6

バイト配列を UTF-8 文字列に変換するにはどうすればよいですか? バイナリ形式から抽出しているため、これが必要です。

4

1 に答える 1

7

文字列は単なるバイト配列です。したがって、UTF-8 文字列はバイト配列とまったく同じですが、さらにバイト配列が何を表しているかを知っている点が異なります。

したがって、バイトの入力配列には、文字セット (文字エンコード) というもう 1 つの追加情報も必要です。入力文字セットがわかっている場合は、バイト配列を UTF-8 文字列を表す別のバイト配列に変換できます。

これを行うための PHP メソッドは と呼ばれmb_convert_encoding()ます。

PHP 自体は、文字セット (文字エンコーディング) を認識していません。したがって、文字列は実際にはバイトの配列にすぎません。アプリケーションは、それを処理する方法を知っている必要があります。

したがって、バイト配列があり、それを PHP 文字列に変換して、 を使用して文字セットを変換する場合はmb_convert_encoding()、次の手順を試してください。

$input = array(0x53, 0x68, 0x69);
$output = '';
for ($i = 0, $j = count($input); $i < $j; ++$i) {
    $output .= chr($input[$i]);
}
$output_utf8 = mb_convert_encoding($output, 'utf-8', 'enter input encoding here');

(上記の 1 つの例の代わりに、https://stackoverflow.com/a/5473057/530502で他の例を見てください。)

$output_utf8次に、UTF-8 に変換された入力バイト配列の PHP 文字列になります。

于 2012-09-02T19:08:49.520 に答える