
Javaにて「シフトJIS X 0213」で定められている下記の文字を判断したいです。
(参照: http://www.eonet.ne.jp/~kotobukispace/ddt/jisx02 …)
・第3水準
・第4水準
・予約
・使用不可
実現方法としては、文字列を「シフトJIS X 0213」にエンコードして、
エンコードした文字のバイトを判断するのが妥当だと思いますが、
Javaにて「シフトJIS X 0213」にエンコードすることは可能でしょうか。
sunの「サポートされているエンコーディング」の一覧を見ても「シフトJIS X 0213」
はサポートされていないように見受けられます。
(参照: http://www.ingrid.org/java/i18n/encoding/)
仮に「シフトJIS X 0213」にエンコード出来ない場合、
他の方法にて実現する方法等ありましたらご教授願います。
【動作環境】
OS:Windows Vista Business
JRE:1.5.0_10
No.1ベストアンサー
- 回答日時:
>Javaにて「シフトJIS X 0213」にエンコードすることは可能でしょうか。
質問文のリンク先を読んでみましたが、X 0213はまだサポートされていないようですね。
JavaのUnicode文字を単にShift_JISにエンコードすれば第1水準・第2水準の文字は判断できますが、第3水準・第4水準については難しそうですね。
また、予約・使用不可というのは文字ではなく、使えないコード範囲なのですから、Unicode文字には予約・使用不可に変換される文字は無いでしょう。
この回答への補足
thamansa様、ご回答真にありがとうございます。
私の質問文の書き方が悪く、真意が伝えきれておりませんでした。
真意としては、対象の文字に禁則文字(※1)が含まれているか否かを判断したいのです。
Shift_JISにエンコードすることで、「第1水準」「第2水準」の判断がつくのであれば、
エンコード出来ない文字は、禁則文字(※1)として判断出来る認識で良いでしょうか。
(※1)「シフトJIS X 0213」で定められている下記の文字
・第3水準
・第4水準
・予約
・使用不可
No.3
- 回答日時:
JIS規格の「Shift_JIS」には、NEC拡張文字とIBM拡張文字が入っていなくて、それらを含めた文字コードはMS932またはWindows-31Jという文字コードです。
str.getBytes("Windows-31J");
thamansa様、No.1の答えに重ね、ご回答真にありがとうございます。
ご教授いただきました方法によって実現することが出来ました。
この度は真にありがとうございました。
No.2
- 回答日時:
第3水準・第4水準文字は、SJISでgetBytes()すると0x3f、すなわちASCIIの'?'文字になります。
この回答への補足
ranco様、ご回答真にありがとうございます。
ANo.1のthamansa様の回答より、Shift_JISにエンコードすることで、「第1水準」「第2水準」の判断がつくと認識しました。
str.getBytes("shift_jis");
より、Shift_JISにエンコードする方法を取り、動作確認レベルで検証を行いましたが、
0x8740~0x8775の「第1水準」の文字(機種依存文字でしょうか?)が変換不能になり、0x3F(63)が返却されてしまいます。
何か良い解決策をご存知ないでしょうか。。。
質問ばかりで申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELのVBAでLenB関数について
-
ファイル名の一部削除について
-
ASC関数
-
一番右のスペース以降の文字列...
-
【Excel VBA】セル内テキストの...
-
「シフトJIS X 0213」形式の文...
-
StrConvでUnicodeに変換出来な...
-
CString型 全角半角を意識せず...
-
TextFieldParserの固定長桁数を...
-
バイナリデータの取り方
-
【VB.NET】Excelの最終行までの...
-
VBA 変数名に変数を使用したい。
-
エクセルでXY座標に並べられた...
-
C#でbyte配列から画像を表示さ...
-
『列名 '担当者CD' があいま...
-
INT64対応のprintf系関数はあり...
-
VB.NETの配列にExcelから読み込...
-
C# DataTableに最後に追加した...
-
構造体配列内の文字列検索のよ...
-
COBOLのINVALID KEYが理解でき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELのVBAでLenB関数について
-
ファイル名の一部削除について
-
StrConvでUnicodeに変換出来な...
-
CString型 全角半角を意識せず...
-
一番右のスペース以降の文字列...
-
エンコード・デコードの仕方
-
「シフトJIS X 0213」形式の文...
-
文字列から、null値を除去する方法
-
TextFieldParserの固定長桁数を...
-
VB6のテキストボックスに入力し...
-
VBからID3タグをいじる方法
-
【Excel VBA】セル内テキストの...
-
C#文字コードについて
-
HEX
-
文字列の中に半角文字があるか...
-
ASC関数
-
機種依存文字と特殊文字について
-
Err.Number
-
chrをintに変換すると…
-
C言語とWin32APIで全角かなの...
おすすめ情報