外部インターフェイスのコンテンツのエンコードに苦労しています。MySQLデータベースでは、照合はlatin1_swedish_ci
です。また、フィールドの照合はistlatin1_swedish_ci
です。phpスクリプトはUTF-8でエンコードされており、ブラウザーの出力からUTF-8が得られます。このデータベースのコンテンツを除いて、すべてが正常に機能しています。データベース接続はUTF-8(Typo3 4.7)である必要があり、内容は
straße
しかし、それはそうあるべきですstraße
。
mb_detect_encoding($data['street'],'UTF-8')
と言いますUTF-8
。私が使用する場合、私utf8_decode()
は得る
stra�?e
私が使用する場合、私utf8_encode()
は得る
straße
私の仮定では、UTF-8でエンコードされたデータはに格納されてISO-8859-1
いますが、この場合、ここでそのような問題が発生することはありません。実際のエンコーディングが何であるかを知るにはどうすればよいですか?
PS:ソースのエンコーディングを変更できません!
私の最初の問題に対する私の解決策:
このコード行を使用して、datbase接続をUTF-8からISO-8859-1に設定する必要がありました
$res = $GLOBALS['TYPO3_DB']->sql_query("SET NAMES latin1");