0

utf-8エンコーディングの問題については、多くの投稿があることを知っています。しかし、文字列をutf-8に変換できません。

"beløp"私はphpに文字列を持っています。

この画面をiフレームで印刷すると、印刷され"bel�p"ました。

その後、私は試しましたutf8_encode("beløp");- 今私は出力を得ました - "bel�p"

もう一度試してみiconv("UTF-8", "ISO-8859-1", "beløp");ましたが、出力が得られました - "bel "

そして最後に私は試しました -utf8_encode(utf8_decode("beløp"));今私は出力を得ました - "bel?p"

どこが間違っているのか、どうすれば修正できるのか教えてください。

4

3 に答える 3

0

こんにちは、「UTF-8」でエンコードされていないファイルに問題がありましたが、修正されました。

「bel�p」を「beløp」に置き換えて修正しました。

于 2013-07-20T09:20:03.220 に答える
0

変換が機能しない理由は、「beløp」テキストの元の形式が iso-8859-1 にないためです。utf8_encode は、この形式からの変換に対してのみ機能します。この種の問題に有効なのは、mb_detect_encoding 関数 ( http://php.net/manual/en/function.mb-detect-encoding.php ) を使用して、テキストの元のフォーマットを見つけてから、 iconv 検出されたエンコーディングから utf-8 に変換します。これが完了したら、以前のコメントで述べたように、utf-8 がヘッダーのエンコーディングであることを確認する必要があります。

php mb detect enconding はあまり信頼できず、正しいエンコーディングを検出する際に間違いを犯す可能性があることに注意してください。特に大量のテキストがない場合。すべてのテキストを常に正しく表示するには、すべての処理が常に同じエンコーディングで行われるようにする必要があります。外部ソースまたは Web サービスからテキストを取得する場合は、テキストが処理される前に、ヘッダーが正しいエンコーディングであることを常に確認する必要があります。

于 2015-03-16T14:07:59.037 に答える