No.1
- 回答日時:
ファイルから読込時に(InputStreamReaderで) charset を指定して読込む(あるいは、書き出す)のが常套手段だと思います。
java では、ソースコードが記述されている文字コードがなんであれ、
内部的には、ユニコードとして文字は扱われています。
この回答への補足
すいません。説明不足でした。
ユニコード変換されたファイルを読むのではなく、
文字列をユニコード文字列に変換したいのです。
native2asciiを使ったような文字列が変換を、java実行時に行いたいのです。
例えば、"あ"を、"\u3042"にしたいのです。
No.2
- 回答日時:
BLUEPIXYさんが言われているように内部ではunicodeで持っているので、値が設定された時点でunicodeだと思うのですが。
。。いまいちやりたいことがピンときません。
とりあえず、参考までに。。
エンコード変換は
String#getByteを使用するとできます。
この回答への補足
ありがとうございます。
内部のバイナリとは関係なく、ユニコードを「文字列」として表示したいのです。
補足にもあげたように、
"あ"という文字列を、"\u3042"という文字列にしたいのです。
String#getByteをしても、取得できるのはバイトデータです。
native2asciiを使ったことがあるでしょうか?
あれは、ファイルに"あ"とある文字を"\u3042"という「文字列」に変換してくれます。
文字列を、バイナリデータではなく、文字列表記であらわしたいのです。
伝わりますでしょうか?
No.3ベストアンサー
- 回答日時:
>String#getByteをしても、取得できるのはバイトデータです。
getBytesで取得します。
上位バイトと下位バイトを繋げば
「あ」なら3042(16進)になります。
emi2006さんのやろうとしていることは標準クラスではありませんので自作してください。
参考までに簡単なサンプルを作ってみました。
import java.io.*;
public class test{
public static void main(String argv[]){
try{
String str = "あいうえお";
byte bArray[] = str.getBytes("UTF-16LE");
for( int i = 0 ; i < bArray.length - 1 ; i+=2 ){
char cCode = (char)(bArray[i] + bArray[i+1]*0x100);
System.out.println(Integer.toHexString(cCode));
System.out.println("\n");
}
}catch(Exception e){
System.out.println("error\n");
}
}
}
実行すると
3042
3044
3046
3048
304a
と表示されます。
Integer.toHexStringで16進の「文字列」に変換しています。
No.4
- 回答日時:
こんばんは。
要するにユニコードエスケープをしたい、もしくはされたファイルを読みたいということですよね。
java.util.Propertiesクラスのsaveメソッドとstoreメソッドにほぼ正解があると思います。
ソースコードを見て参考にされてはどうですか?
特にプライベートメソッドのloadConvertメソッドとsaveConvertメソッドがミソのようです。
No.5
- 回答日時:
#1>例えば、"あ"を、"\u3042"にしたいのです。
既に述べたように文字(Character)は、ユニコードなので、文字を16進表示してやるだけです。(場合によってはそれだけではうまくない場合もあるかもしれません)
----------------------------------------------------------------
public class Sample {
public static void main(String arg[]){
String text = "あいうえお";
for(int i=0;i<text.length();i++){
System.out.printf("\\u%04X%n", Character.codePointAt(text, i));
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java すみません。助けてください。 javaについての質問です。 integerに変換できない数値をエラー 5 2022/05/18 19:16
- Java javaで質問です。 文字列2023/2/3(一桁の場合、0埋めなし)の場合にyyyyMMddに変換 3 2023/02/20 11:30
- フリーソフト BIOS.binをバイナリエディタで開くと ascii 変換しても、暗号化されていて何か分からない文 6 2022/07/11 03:34
- Java java 入力された文字列を数値に置き換えて整数にし、計算をしたいです。 <を10として /を1とし 4 2022/05/16 21:08
- Java JavaでWebページ作成 7 2023/07/21 21:09
- 物理学 ガリレイ変換は導出できますか。 8 2023/01/11 18:13
- その他(Microsoft Office) Microsoft IME 一発で変換できない言葉がある 3 2022/07/19 19:29
- フリーソフト フリーソフト[フリーオンライン動画兼音声変換ソフト]縦長になってしまう 2 2022/07/11 08:11
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- 数学 フーリエ変換、逆変換の「2π」の扱いについて 3 2022/10/07 08:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java初級 引数に適用できません
-
レコード件数の表示
-
VBAで新規ファイル名
-
public static void main (Stri...
-
不要なstaticメソッドの見分け...
-
StringBufferからStringへキャ...
-
String.containsの反対機能はあ...
-
Google Apps Script で getRang...
-
リストボックスの並べ替え (VB...
-
戻り値の異なるメソッドの多重...
-
なぜprotected overrideなのか
-
オーバーライドの必要性
-
abstract と static を一緒に付...
-
Jakarta POI での、excelのシ...
-
YYYYMMDD書式の日付に対する適...
-
C# 点の描き方をおしえてくだ...
-
java ジェネリックスに関して
-
【C#】WebBrowser上で表示され...
-
Android 別javaファイルのメソ...
-
Java初心者です、エラーの意味...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java初級 引数に適用できません
-
public static void main (Stri...
-
レコード件数の表示
-
abstract と static を一緒に付...
-
なぜprotected overrideなのか
-
C# 点の描き方をおしえてくだ...
-
コマンドライン引数のチェック
-
String.containsの反対機能はあ...
-
Google Apps Script で getRang...
-
StringBufferからStringへキャ...
-
Java初心者です、エラーの意味...
-
javaに"search"という関数 or ...
-
C# でメソッドに送られてきたOb...
-
YYYYMMDD書式の日付に対する適...
-
メソッド宣言の戻り値の型にク...
-
return new使用時
-
readLine()ではじめから読み直...
-
シェルスクリプトからのJavaメ...
-
Fileの読み取り専用の解除
-
親の親のメソッドを呼ぶには?
おすすめ情報