2011-09-05 6 views
0

このようなMySQLのDBにSQL文字列を実行する:MySQLの使用

SELECT * 
FROM IpProvider, IpUsers 
WHERE IpProvider.UserId = IpUsers.Id AND 
(IpProvider.CompanyName LIKE '%køb%' OR IpProvider.ShortDescrip LIKE '%køb%') 

これが0行を返すが、(として1行を返すべきデンマーク語の "køb"はShortDescripのテキストの一部です)。この検索は、デンマーク語の文字を保持していない他のテキスト文字列とうまく動作します。

直接テーブルのフィールドからコピーしたテキスト:文字セット= UTF-8

とMySQLテーブルのフィールドの照合は次のとおりです: utf8_general_ci

"Køb kvalitet fra starten - det er vores råd."

HMTLファイルは述べメタタグを保持しています

アイデア?

答えて

0

スクリプトの冒頭にSET NAMES utf8;を発行してください。これにより、MySQLとあなたのライブラリがどこでもUTF8を「話す」ことが保証されます。

また、utf8_unicode_ciのための照合順序を変更してみてください。これは(おそらく)遅くなりますが、いくつかの言語でより良い照合を処理します。

は、[編集]私の第二の助言が再びあなたの質問を読んだ後など、無関係であるかもしれない、あなたは、検索文字列があなたのデシベルで「そのまま」表示されていることを述べました。私はutf8_unicode_ciをデフォルトで使う傾向があります。

+0

私はmysql_set_charsetを試してみました - 表示された文字が間違っていても1行を返しますが、それを理解するでしょう - ありがとう! – Per

+0

助けてくれてうれしいです。答えは受け入れられたとマークしてください:-) – Benjamin

+0

私はそれをして喜んでします - しかし、私はこのフォーラムには初めてです。私はそれを受け入れたものとしてどこにマークしますか? – Per

0

照合順序をlatin1_danish_ciに変更して、それが良いかどうかを確認してください。可能な文字はlatin1_danish_ciとutf8で別々にソートされます

+0

あなたのご意見ありがとうございます - 私はそれを試みましたが、それは何の違いもありません。 – Per

関連する問題