• 締切済み

ユニコード変換

javaでユニコード変換ができるクラスがあるのでしょうか? native2asciiのような変換をjavaからしたいのです。

noname#19197
noname#19197
  • Java
  • 回答数5
  • ありがとう数1

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答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)); } } }

  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.4

 こんばんは。  要するにユニコードエスケープをしたい、もしくはされたファイルを読みたいということですよね。  java.util.Propertiesクラスのsaveメソッドとstoreメソッドにほぼ正解があると思います。  ソースコードを見て参考にされてはどうですか?  特にプライベートメソッドのloadConvertメソッドとsaveConvertメソッドがミソのようです。

  • sha-girl
  • ベストアンサー率52% (430/816)
回答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進の「文字列」に変換しています。

noname#19197
質問者

お礼

Javaの標準クラスにあるかどうか知りたかっただけでした。 ありがとうございました。

回答No.2

BLUEPIXYさんが言われているように内部ではunicodeで持っているので、値が設定された時点でunicodeだと思うのですが。。。 いまいちやりたいことがピンときません。 とりあえず、参考までに。。 エンコード変換は String#getByteを使用するとできます。

noname#19197
質問者

補足

ありがとうございます。 内部のバイナリとは関係なく、ユニコードを「文字列」として表示したいのです。 補足にもあげたように、 "あ"という文字列を、"\u3042"という文字列にしたいのです。 String#getByteをしても、取得できるのはバイトデータです。 native2asciiを使ったことがあるでしょうか? あれは、ファイルに"あ"とある文字を"\u3042"という「文字列」に変換してくれます。 文字列を、バイナリデータではなく、文字列表記であらわしたいのです。 伝わりますでしょうか?

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

ファイルから読込時に(InputStreamReaderで) charset を指定して読込む(あるいは、書き出す)のが常套手段だと思います。 java では、ソースコードが記述されている文字コードがなんであれ、 内部的には、ユニコードとして文字は扱われています。

noname#19197
質問者

補足

すいません。説明不足でした。 ユニコード変換されたファイルを読むのではなく、 文字列をユニコード文字列に変換したいのです。 native2asciiを使ったような文字列が変換を、java実行時に行いたいのです。 例えば、"あ"を、"\u3042"にしたいのです。

関連するQ&A

  • 日本語をUnicodeに変換したい

    文字コードを変換したいのですが、 日本語文章をUnicodeに変換する方法 もしくはフリーウェアなどありますか? 例えば、こんにちは と入力して 変換すると、Unicodeで3053,3093,306b,3061,306f という風に変換されるようにしたいのですが。 よろしくお願いします! jAVA,MATLABなら使用可能です。

  • UNICODEからASCII

    すごく漠然とした質問でもうしわけないのですが UNICODEからASCIIへと変換するようなやり方 または 関数って C++であるのでしょうか 初心者なもので よろしくおねがいします。

  • ユニコードへの変換について

    JavaScript で %82%A0 ・・・といったデコードされた 文字列から、ユニコード %u3042・・・ へ変換する 方法を教えてください。なにとぞお願いします。

  • parameterのunicode変換

    unicode変換について聞かせてください。 servletでparameterを受け取って、unicode変換させて、自分の 必要なparameterだけを使うということです。 いろいろHPなどを参考に調べた結果、 Hashtable data = new Hashtable(); Enumeration e = request.getParameterNames(); while (e.hasMoreElements()) { String key = (String)e.nextElement(); String[] values = request.getParameterValues(key); try { data.put(key,new String(values[0].getBytes("8859_1"),"JISAutoDetect")); } catch(java.io.UnsupportedEncodingException ex) { } } との内容の変換を元に考えたのですが、自分では改造できずにいます。 上記の例では、Hashtableに収められた、変換内容の取得が、 String hinmei = (String)data.get(kye); などとすると、hinmeiのunicode変換された値がすべて取得される と思います。 しかし、自分の欲しいunicode変換された値だけを取得するには どのようにしたらよいでしょうか? 例えば、 String hinmei = (String)data.get(hinmei); String hinban = (String)data.get(hinban); というように、個別で取得したいのです。 もちろん、この他にも、parameterで送られてきている値は、あるかも 知れませんが、この場合は使わず・・・。 また、使うときには、 String hinmoku = (String)data.get(hinmoku); と追加するだけでいいようにしたいのです。 ご教授できらた幸いです。

    • ベストアンサー
    • Java
  • 【SQLServer】UNICODEから文字への変換について

    SQLServer2005を利用しています。 半角→全角変換の関数を作成するために、一度unicode関数を使用したいと考えています。 が、UNICODEから文字への変換方法がわからず困っています。 文字からunicodeへは、UNICODE関数があるのですが、逆はないのでしょうか? 一方通行にしか変換できないのでしょうか? ご存知の方よろしくおねがいします。

  • ユニコードで漢字変換

    IME2003です Unicodeを用いて漢字を入力する方法として >Unicodeをあらわす「U」に続けて目的の漢字のUnicodeをキー入力する。「う5676」というように先頭の「U」が自動的にひらがなに変換されても構わずに、そのまま[F5]キーを押す< となっていました 自分がWord2003で「う5676」と入力し、[F5]キーをおすと「検索と置換」ダイアログが表示されてしまいます。 自分のやり方のどこが間違っているのかWEBで調べてみたのですがなぜそうなるのか探せません。 Unicodeで漢字を入力する方法を教えてください よろしく御願いします

  • 漢字をUnicodeに変換する方法を教えてください!

    現在取り組んでいるシステム開発で、漢字が含まれている文字列をUnicodeに変換する処理を行っています。例えば、 StrConv("出力", vbUnicode) 上記の変換結果は、"(8)娚"となります。この文字を、 StrConv("(8)娚", vbFromUnicode) このように再び漢字に戻した結果、"宇力"という文字化けが発生してしまいます。 いろいろと調べていたら、"出"と"宇"のUnicodeへの変換結果がどちらも"(8)"で同じである事に気付きました。これは一体、どういうことなのでしょうか? 漢字を文字化けさせないでUnicodeに変換するにはどうすればよいですか? また、Unicodeに変換する関数;MultiByteToWideChar()のVBでの記述方法や宣言の仕方など詳しく教えて下さい!! よろしくお願い致します。。。

  • HTMLユニコード?の変換

    こんにちは。大変困っていますので助けてください。 日本語の使えないデータベースに日本語を保存するため、unicode形式の→「日本」このような形式で文字を保存してあり、それをexcel+VBA上で日本語に戻したいのですが、unicodeにまったく無知なため四苦八苦しています。 まず、 (1)unicodeにもいろいろな形式があるようで、上記の書き方はとあるサイトではHTMLユニコードとかかれていましたが、これは一般的な読み方なのでしょうか?(http://code.cside.com/3rdpage/jp/unicode/converter.html) htmlユニコードで検索をしてもここ以外ではあまり引っかからず、また &#~;という形式についても調べてもよく分かりません。これはなんと呼ばれる表記方なのでしょうか? (2)そして上記のようなコードをvbaで日本語に直す場合、単純に StrConv(<文字列>, vbFromUnicode) ではうまくいかないのですが、どうやって変換すればいいのでしょうか? どうか知恵をお貸しください。よろしくお願いします。

  • ユニコード への 一括変換ソフト

    よろしくお願いします。 今、サイトをつくっています。 Shift_JIS からユニコードへ一括変換できるフリーソフトを ご存知でしたらご紹介ください。 普段使い慣れている html作成ソフト ではユニコードで作成できないので、 サーバーへアップロードする際に一括変換しようと考えています。 どうぞ宜しくお願い致します。

  • CIDコードからUNICODEへの変換???

    .NETのC++でプログラムを作っています 外部から文字列が渡されますが、この文字列はCIDコードです これをUNICODEに変換して使用したいのですが、その方法が分かりません 『 CID UNICODE 変換 』をキーワードにして検索しましたが適当な資料に出会えません C++から呼べる変換関数などをご存知でしたらご指導お願い申し上げます 宜しくお願い致します

専門家に質問してみよう