【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください

入力文字列のバイト数チェックをするプログラムを修正していて、
以下の処理で波ダッシュが3バイトとして、認識されて困っています。
System.out.println("~".getBytes("MS932").length);
>3バイト

DBのテーブル格納時には、波ダッシュは2バイト扱いで登録する想定なので、
入力チェックで、3バイトでなく2バイトで波ダッシュのバイト数を認識したい次第です。

他の特殊文字は、きちんと2バイトで認識されています。
以下の正常に2バイトに認識されている文字は、影響をあたえずに、波ダッシュを2バイト
と認識させる対応をお手数ですが、ご教授ください。

例.
  "ア"
  "試"
  "ー"(全角ハイフン)
  "まるの1" ※掲示板にかけないため、左記の表現(本当は2バイトの1文字)
  "ミリ"   ※掲示板にかけないため、左記の表現(本当は2バイトの1文字)

※実行環境
 ApacheのStruts環境
 UnixとWindowsの両方の環境で実行。
 デバックはWindows、テスト実施、本番稼働はUnix

お手数をおかけしますが、よろしくお願い致します

A 回答 (2件)

Windows7 + Java6 の環境では



"\uff5e".getBytes("MS932").length

は2になりましたけど。
それにMS932に3バイトのコードはなかったような・・・

何にしてもいろいろ問題がありそうですが
http://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80% …
http://www.informe.co.jp/useful/character/charac …
    • good
    • 0

http://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80% …

これの関係で、MS932に対応文字がない→UTF-8のまま(3バイト)、となってたりしないでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報