2

私のphpファイルでは:

foreach ($output[0] as $key => $value){
    $output[0][$key] = utf8_encode(strip_tags($output[0][$key]));       
}
echo (json_encode($output));

nullウムラウト付きの文字が邪魔になるのを避けるために utf8 でエンコードしていたところ、ハイフンが見つかりました。これは、フォーム出力を取得しているテキストです。

H\u00f6rbuch-CDs

次に、json_encode を実行すると、null. 元のテキストはHörbuch-CDs基本的にutf8エンコーディングが機能していましたが、何らかの理由でハイフンをスキップし、utf変換のコード(と思う)を見つけましU+002Dた。変換が存在することを意味します。

私の質問は、なぜ utf8_encoding が...エンコーディングではないのですか? この問題を解決するにはどうすればよいですか? テキストを解析して、すべてのハイフンを手動で置換する必要がありますか?

少し余分に、出力のテキストは collat​​ion を使用してデータベースから取得されますがlatin1_german1_ci、これが役立つかどうかはわかりません。

4

1 に答える 1

0

utf8_encodeの代わりにiconvを使用してみましたか?

iconv('LATIN1','UTF-8',strip_tags($output[0][$key]));
于 2013-02-28T10:41:50.597 に答える