文字列のバイト数を取得する(英語mac)
Mac OSX | 10.6.6 |
java | 1.6.0_24 |
言語 | 英語 |
エンコーディング | UTF-8 |
の環境の話ですが,ものすごくハマったのでメモ.
http://blogs.sun.com/katakai/entry/netbeans_and_java_for_mac2
に書いてあるように~/.MacOSX/environment.plistにエンコーディングを設定.
何故なら英語MacのデフォルトエンコーディングはMacRomanとかいう意味不明なのになっているのでOTL
<key>_JAVA_OPTIONS</key> <string>-Dfile.encoding=UTF-8</string>
これを設定すると,String.length()が正しい値になります.
あとは,UTF-8はマルチバイトなので,Shift_JISに変換後バイト数を求める.
String string = "こんにちは"; length = string.getBytes("Shift_JIS").length;
たったこれだけのことに,ホニャララ時間もかかるとは・・・・.