2

これはばかげた質問かもしれませんが、私には何も機能していないようです。

2つの異なるデータベースの2つの列の間で値を比較する必要があります(値を変更するためのアクセス権がありません)。db1のエンコーディングはUTF-8です。db2のエンコーディングはlatin1です。

したがって、たとえば、これらは私が比較している2つの値であり、比較では同じである必要があります。

**db1_value** = 'Maranhão'
**db2_value** = 'Maranhão';

utf_encodeを使用した場合とまったく同じように表示されますが、表示は問題ではありません。変数db1_valueをdbのフィールドdb2_valueと比較したいので、次のような非常に単純なものを使用しています。

$query = "SELECT **db2_value** FROM db2 WHERE db2_field LIKE '" . **$db1_value** . "'";

比較する前にどのように変換'Maranhão'しますか?'**Maranhão**'

iconv、utf8_encode、その他いくつかのメソッドを試しましたが、変数に違いはありません。私はこれを行うために正しいアプローチを取っているのかどうか疑問に思っています。

これに関する建設的なコメントに感謝します。

どうもありがとう、

4

1 に答える 1

4

UTF-8からではなく実際の値に変換する必要がありHTML-ENTITIESます幸いなことに、mbstring拡張機能には次のような変換があります。

$latin1 = mb_convert_encoding($db1_value, "ISO-8859-1", "HTML-ENTITIES");

ここでは、を文字セットHTML-ENTITIESとして指定しますFROM

次に、と比較でき$latin1ます$db2_value

于 2012-07-15T17:24:16.763 に答える