windows2000sp4 j2sdk1.4.2_05の環境です
.netでは、直接unicodeでの入出力が行われるとか聞いているのですが、javaのFileInputReader/Writerで、encodingに、UTF-16 UTF-16LE UTF-8 等を指定して、入出力を行った時、どうも、s-jis対応外の文字は、"?"に変換されてしまうようで、FileInput/OutputStream を用い、バイナリで処理してみようとおもったのですが、byte型とString型(または、BufferString型)とのbinaryなデータのcopyがよく分かりません。何かご存知の方 お教え頂けないでしょうか
No.2ベストアンサー
- 回答日時:
>どうも、s-jis対応外の文字は、"?"に変換されてしまうようで、
これは、どうやって確認したのでしょうか?
確認の仕方が悪かった気がします。
ファイルが正常に作成されていても、シフトJIS用のソフトを使って確認したら、当然おかしな結果になります。
確実なのは、バイナリエディタで開いて確認してみることです。
ご挨拶が遅れてすみません
s-jis以外のunicode文字をバイナリエディタで作成し、
javaのInputStreamReader/WriterでSringを介して入出力し、UTF-8/UTF-16とも、文字化けしないことを確認しました
ありがとうございました
どうも、前処理でTeraPadで入出力いてしまい、"?"に化けていたことに気づかなかったようです
No.1
- 回答日時:
単に画面出力の問題では?
例えばSystem.out.printlnでDOSプロンプトでハングル文字の出力はできませんし
メモ帳で開く場合でもちゃんとUNICODEに対応した文字セットを指定しないと化けます。(ちなみにWordならない文字セットも補完されます)
>binaryなデータのcopyがよく分かりません
String型をバイト配列にエンコーディングすれば良いのでは?
String a = "あああ";
byte buf[] = a.getBytes("UTF-16LE");
sha-girl様 回答ありがとうございます
使用文字セットとの関係が考えられますか!
どうも、javaの場合は、エンコーディナグを、"UTF-16LE"と指定しても、入出力時、ダイレクトにunicodeでの入出力ではなく、間にプラットフォームであるwindowsのデフォルト文字セットであるshift-jisを仲介させての入出力のように思えるのですが。そのために、s-jisに対応しない文字が 0x003F"?"に置き換わる そんな印象なんですが
私は、どうもやることに時間がかかってしまうのですが、ご回答いただいたことを、これからためしてみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 8 win8 "ベータ ワールドワイド言語サポートで Unicode UTF-8 を使用"を出したい 2 2023/05/23 19:57
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- Java Javaについて質問です。 勉強し始めたばかりの初心者です。 相続税について課税額を算出するコードを 1 2022/05/31 19:02
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- C言語・C++・C# C# 標準出力のencodingをutf8にする 1 2023/02/15 12:38
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- その他(プログラミング・Web制作) awkの文字列比較はPOSIXロケールまたはCロケールにおいてバイナリ値の比較に使えるか gawkな 1 2023/04/22 09:21
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルクォーテーションのrepla...
-
javaで質問です。 文字列2023/2...
-
substring バイト単位でやりたい
-
Path型をString型へ変換する(Java)
-
javaでのOracleのデータ登録の...
-
文字列の比較
-
JavaのStringクラスに「外字」...
-
javaで「全角が含まれているか...
-
下記問題の答えが"D"になる意味...
-
javaの初歩的な質問です。
-
世界測地から日本測地への変換...
-
javascriptで文字列のsjis利用...
-
文字コード変換
-
replace関数で複数の文字の変換...
-
C言語32bitから64bitの移行につ...
-
カタカナをローマジに変換する。
-
Windows-31Jからutf-8への変換...
-
全角英数字とハイフンを半角に...
-
COBOLで半角カナを全角カナに変換
-
int型のゼロ埋め
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
Path型をString型へ変換する(Java)
-
カタカナをローマジに変換する。
-
int型のゼロ埋め
-
javascriptで文字列のsjis利用...
-
byte[] を long,float とかに...
-
C言語32bitから64bitの移行につ...
-
JavaのStringクラスに「外字」...
-
javaの初歩的な質問です。
-
Visual Basic でのコードをASCI...
-
UTF-8とUnicodeの互換性
-
文字列の比較
-
[Javascript]エンターキー押下...
-
下記問題の答えが"D"になる意味...
-
エクセルVBAで「〜」が表現でき...
-
byte配列をImageに変換する
-
javaで「全角が含まれているか...
-
IBM漢字コード⇒SJIS変換方法
-
Windows-31Jからutf-8への変換...
おすすめ情報