toLowerCaseメソッドとtoUpperCaseメソッドでのトルコ語の変換

yamagenii 161views 更新:2015年2月19日
public String toLowerCase()

はString内のすべての文字をロケールのルールを用いて小文字に変換します. しかしロケールのルールに従うために予期せぬ変換が起こることがあります.

例えばトルコ語ロケールの

"TITLE".toLowerCase()

は t\u0131tle を返します.

「\u0131」はラテン文字の上にドットのない小文字のIの文字です 以下のサイトのトルコ語の欄を見るとわかりやすいですが,トルコで用いられる”I”と”i”は大文字小文字の関係にないのでこういった現象が起こるようです. 各国ラテン文字一覧

解決するには

toLowerCase(Locale.ROOT)

または

toLowerCase(Locale.ENGLISH)

とするとロケールに依存しない文字列の正しい結果を取得ができます

toUpperCaseも同様です.

javadocにも記されています. Javadoc

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません