Skip to content →

PostgreSQLで日本語での並び替えがうまくいかない場合の対処法

とあるサーバーでPostgreSQLを使っているのですが、サーバーを移行してから、日本語の並び替えがおかしくなってしまいました。今回はその解決方法についてです。

ロケールが違う場合に起きる

PostgreSQLのロケールは言語と文字コードを指定するようですが、例えば日本語+UTF8で作っているにもかかわらず、移行したサーバーが日本語+EUC-JPだった場合、こんな時に並び替えが上手くいきません。

レンタルサーバーの場合、ロケールを変えるのはできないところが多いと思います。
そんな時は

ORDER BY convert_to(title,'UTF8');

のようにconvert_toを使うことで解決できました。

[sc name=”engeneer”]

Published in 開発奮闘記