2016-11-27 11 views
0

私は独特の列の磨きとドイツの看板に入れたい。私は、データベースに変更すると :ポーランド語とドイツ語アクセント付きの文字をmysqlで

alter database osa character set utf8 collate utf8_general_ci; 

を私はドイツの兆候に問題があります。

sql> insert into company(uuid, name) VALUE ("1","IDE") 
[2016-11-27 10:37:35] 1 row affected in 13ms 

sql> insert into company(uuid, name) VALUE ("2","IDĘ") 
[2016-11-27 10:37:37] 1 row affected in 9ms 

sql> insert into company(uuid, name) VALUE ("3","Schuring") 
[2016-11-27 10:37:38] 1 row affected in 13ms 

sql> insert into company(uuid, name) VALUE ("4","Schüring") 
[2016-11-27 10:37:39] [23000][1062] Duplicate entry 'Schüring' for key 'UK_niu8sfil2gxywcru9ah3r4ec5' 

私はどちらを使う必要がありますか?

編集:

またutf8_unicode_ci内

答えて

0
alter database osa character set utf8mb4 COLLATE utf8mb4_bin; 

私のために動作します。 @MaciekBryńskiあなたのヒントに感謝します。

+0

'bin'それは、 'mb4'ではなく、 –

+0

@RickJamesです。私は知っています。 –

+0

他人のためにそれを明確にします。 –

0

のための作品ではなく、utf8_unicode_ciutf8_general_ciのすべての出現を置き換えません。 utf8_general_ciは明らかに、壊れている:What are the diffrences between utf8_general_ci and utf8_unicode_ci?

utf8_general_ciは非常に簡単です - とUnicode上、非常に壊れた - 照合、一般的なUnicodeテキストに誤った結果を与えてくれるもの。

+0

utf8_unicode_ciはポリッシュ記号では機能しません –

+1

技術的に言えば、ut8_unicode_ciは壊れており、utf8_unicode_520_ciで修正されています。 8.0では、もっと新しい標準があります:utf8mb4_unicode_900_ci。 –

0

多分あなたはutf8mb4_unicode_ciを試してください。

utf8 charsetにはすべてのutf8文字を格納できません。

https://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html

+0

残念ながらまだ動作していません: –

+0

sql>会社(name)に挿入VALUE( "IDE") [2016-11-27 22:45:22] 1行は13msに影響を受けます sql> insert into company ( "IDÊ") [2016-11-27 22:45:24] [23000] [1062]キー 'UK_name'の重複したエントリ 'IDÊ' –

+0

すべてのヨーロッパ文字は両方の文字セットでカバーされています –

1

COLLATION_ciは、「文字を区別しない」ことを示します。残念なことに、それはまた、「アクセントに敏感でない」ことを意味する。したがって、EĘの扱いを異なるようにするには、utf8_binまたはutf8mb4_binのいずれかの照合を_binとする必要があります。

mb4は、絵文字と中国語に加えて、わかりにくいものが必要です。

関連する問題