2014年11月19日
【java】getBytesだと文字数が合わない
getBytesした長さを見て、一定の長さを超えたら文字列の後ろをカットしたかったのですが
UTF-8だと、日本語は1文字3byteとか!
カットするメソッドには迷いなくsubstringを使ってしまったので、ここで不幸が生まれたわけです。
tmpStr="へらくれす";
でもうアウトなんです。
”へらくれす"は15byteなので、ものの見事に
っていうダサいものが見えます。
うーん。文字コードに頼る実装はダメなのかな。
ちなみに、ヘラクレスを選んだ理由は5文字を探した時に頭の中に麦わらの船長さんが出てきたためと思われます。
UTF-8だと、日本語は1文字3byteとか!
カットするメソッドには迷いなくsubstringを使ってしまったので、ここで不幸が生まれたわけです。
if(tmpStr.getBytes().length > 14 ) {
StringBuffer sb = new StringBuffer(tmpStr.substring(0, 14/2 )).append("...");
}
tmpStr="へらくれす";
でもうアウトなんです。
”へらくれす"は15byteなので、ものの見事に
致命的: java.lang.StringIndexOutOfBoundsException: String index out of range: 7
っていうダサいものが見えます。
うーん。文字コードに頼る実装はダメなのかな。
ちなみに、ヘラクレスを選んだ理由は5文字を探した時に頭の中に麦わらの船長さんが出てきたためと思われます。
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/2987120
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック