1

外国語の文字を含む Web ページからの文字列に問題があります。

str_get_html()文字列は、$htmldom->innertext;(simple_html_dom クラス ライブラリ)を使用して Web ページを解析することによって生成されます。

それを使用して文字列を出力すると、htmlentities()正常に表示されます。しかし、文字列を使用explode()してパーツを印刷すると、外国語の文字ごとに疑問符が入った傾斜したブロックが得られます。

utf8文字列をMySQL データベースに保存する必要があるため、適切な外国語の文字が必要です。

utf8私のページには、文字セット付きのヘッダーがあります。

mb_split()私はすでにと を試しpreg_split()ましたが、同じ問題があります。

4

2 に答える 2

2

私は問題を解決しました: https://github.com/neitanod/forceutf8

ソースが何であれ (Latin1 (iso 8859-1)、Windows-1252、UTF8、またはそれらの混合である限り)、何でも utf-8 に変換する優れた機能があります。

セバスチャン・グリニョーリに感謝します。

于 2011-07-31T02:50:22.097 に答える
1

PHP と UTF-8 はあまり良い組み合わせではありません。一部の関数は UTF-8 で正常に動作し、他の関数は動作しません。最悪の関数は、動作するように文書化されているが実際には動作しないものです ( DOMDocument など)。

を使用mb_convert_encoding()して、マルチバイト文字を HTML エンティティに変換できます。これは通常、受け入れ可能な回避策を提供します。

$string = mb_convert_encoding($string, 'HTML-ENTITIES', 'UTF-8');
于 2011-07-31T02:11:08.637 に答える