• 締切済み

Unicode上しか存在しない文字一覧を調べたい

Unicode上しか存在しない文字一覧を調べたい というのも、画面上で「立方メートル(m^3)」を入力して保存後、画面を開きなおすと「㎥」という文字コードに文字化けを起こしてしまう事象が発生しました。 過去の質問などを調べたところ、以下のような動きになっていると認識しています。 (違ってたら補足お願いします;) 1.入力時:  クライアントはWindows+IEを使用しているため、入力時にはunicodeに存在する「m^3」が表示される 2.データ登録時(クライアント→サーバ):  クライアントからサーバ(Windows)上にデータを送信する際に、文字エンコードをwindows-31Jで指定しているため、文字コード「㎥」に化ける  (※ここでwindows-31Jに「立方メートル」が存在しないため文字化けを起こして登録される?) 3.データ表示時(サーバ→クライアント):  サーバからデータを送信する際にはshift-JISを指定しているため、文字コード「㎥」として送信される ※参考:http://okwave.jp/qa/q1676143.html そこで知りたいのが、このようにデータを登録すると文字化けを起こしてしまう文字の一覧を知りたいと思っております。 つまりUnicodeにのみ存在する文字の一覧を調べたいと思っているのですが…。 自分で調べた限りでは、↓のように、unicode文字の一覧は見つかったのですが、「unicodeのみに存在する文字」(=文字化けして表示されてしまう)文字の一覧というものが調べられず。。。 http://nurucom-archives.hp.infoseek.co.jp/digital/unicode-table.html http://d-toybox.com/studio/lib/romanNumerals.html#sample もし紹介しているサイトをご存知の方いましたら教えていただけると幸いです。 もしくは自分で調べるための方法などをご教示していただけると助かります。 (さすがに画面に65535文字打ち込んで調べるのは骨が折れます。。)

みんなの回答

  • notnot
  • ベストアンサー率47% (4843/10252)
回答No.3

何をしたいのかによりますね。 1.データを自分が入力するときにSJISに無いコードを入れないようにしたいと言うことなら、SJISにあるコードを覚えるか、IMEに判断してもらう(2番の方の回答の通り)しかないと思います。 漢字まで覚えるのは大変ですが、記号だけなら十分記憶できますよ。 2.データ処理プログラムを作るのだが、入力がUnicodeで、そこからSJISに無い文字を除きたいということなら、そのプログラミング言語で使えるUnicode->SJIS変換ライブラリを使って判断させる(Javaなら1番の方の回答が参考になる)。 あと、Windowsで言うところのSJISというのは、本来のSJISに、JISコードにない文字も追加されて一部JISと文字も変えられたCP932というコードですので、含まれている文字がちょっと違います。

回答No.2

「Unicodeに存在してShift_JISに存在しない文字の一覧」という意味であれば、あまり意味のない行為だと思います。 これを作ることは可能でしょうが、膨大な量になります。 その上、その大部分は例えばハングルであるとかアラビア文字であるとか、表にするまでもなく表示不可能なことは分かりそうな文字です。 ですから必要なものは「変換で普通に入力できるがShift_JISに存在しない字」の表だと思います。 しかしこれはIMEの仕様が分からないので確実なものは作れません。 主にJISX0212補助漢字が多いですが、例えばm^3はこれに当てはまりません。 ただ、MS-IME2007やATOKではShift_JISに含まれない文字は「機種依存文字」と注意が出ます。 あるいは発想を変えて、Shift_JISで表示可能な文字の方を覚えておいて、それに含まれない文字は使わないようにするのはどうでしょう。 こちらの表なら探せばいくらでも見つかるでしょう。

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

Unicodeにはあるけれど、Shift_JISにはない文字を調べたいということでいいですか? Javaで試した例です。 下のプログラムをコンパイルして $ java -Dfile.encoding=utf-8 OKWave5748809 > output.txt のように実行すると、UnicodeにあってShift_JISにない文字の一覧がUTF-8で出力されます。 public class OKWave5748809 { public static void main(String[] args) { for (char ch=0x80; ch<0xFFFF; ch++) { if (Character.isLetter(ch)) { try { byte[] sjis=(ch+"").getBytes("Shift_JIS"); if (sjis[0]=='?') { System.out.println(ch+": "+Integer.toHexString((int)ch)); } } catch (java.io.UnsupportedEncodingException e) {} } } } }

関連するQ&A

  • unicodeについて教えてください

    最近、unicoldeというものがあることを知りました jisコードとかシフトjisコードにもない文字が随分登録されています。 この、jisコードとかシフトjisコードにもない、unicodeだけに登録されている文字一覧表みたいなものを作りたいと思っているのですが、どうすればよいのでしょうか。 また、jisコード等から文字一覧表は作成できますが、vba辺りから、このunicodeからの漢字一覧表を作成できるのでしょうか。  お分かりの方、是非教えてください。

  • VBAでUnicodeしか存在しない文字の判定について

    VBA初心者の質問ですが、宜しくお願いします。 エクセル上にUnicodeしか存在しない文字が含まれた文字列を入力するとします。 VBAでその文字列に、Unicodeしか存在しない文字が入力されているかどうかの判定をするにはどのようにしたらいいでしょうか? また、その文字列(Unicodeしか存在しない文字が含まれる)のバイト数を正しく取得するにはどうしたらいいでしょうか?

  • エクセルVBAの入力文字(unicode)について

    VBA初心者ですが宜しくお願いします。 質問ですが、任意のセルにunicodeにしかない文字(?)を、VBAにて変数に入力した際に、"?"になってしまいます。 例:セルA1に"㎥"(立方メートル)が入った文字列、"固体Bの体積は1㎥です。"と入力  【VBA】   dim Ac as string   Ac=cells(1,1).value 上記の場合、変数Acの結果が"固体Bの体積は1?です。"となります。 "?"にならないようにするにはどうしたらいいでしょうか?

  • Linuxで特殊文字フォントを使いたい

    クライアントからのリクエストにより、帳票をPDFファイルで作成し、ダウンロードできるWEBシステムを作りました。 PDFファイルは、クライアントから入力したDBのデータを元に作ります。 ユーザーが単位記号「m3」(立方メートル)の文字を登録したところ、この文字がPDFに正しく表示されません。(&#1と表示される) サーバーはCentOS5を使っています。 WWEBシステムはJavaで作りました。 PDF帳票に「m3」のフォントを表示させるためにはどうしたらよいでしょうか。 フォントのダウンロードサイトや、ダウンロード後の設定手順などを教えてください。 よろしくお願いします。

  • 文字コードANSIからUnicodeにしてください

    今日はじめたばかりの初心者です。 メモ帳でソースを作ってるのですが、 コードの文字数が多くなると、文字コードANSIからUnicodeにしてくださいとメモ帳から言われ、 Unicodeに変更して、保存すると、 http://localhost/tset.php でコードを確認すると、文字化けはしないのですが、おかしくなります。 だからって文字コードANSIにしていると、毎回Unicodeにしますか?と聞かれます。 こういう場合どうすればいいでしょうか? 他のテキストエディタハワードしか使ったことがないです。

    • ベストアンサー
    • PHP
  • Unicode

    グローバルIME、市販ソフトで中国簡体字フォントを入手して簡体字を使用して電子メール送信しようとしたらそのまま送信する。Unicodeで送信する。選択肢のメッセージがでました。 そのまま送信にすると文字化けが起き、Unicodeなら文字化けしないということでしょうか? それともツールバー表示からエンコードをクリック外国、言語から中国語簡体字2312?をクリックすればいいんでしょうか? Webサイトや受信メールなどは文字化けはエンコードを中国簡体字にすれば正常に戻りますが送信したメールは相手にどう表示されてるかわかりません。 送信済みメールをみればいいのでしょうか?

  • 文字(ユニコード画面)がうまく表示されません

    宜しくお願いします。 『ウィキペディア(Wikipedia)』のHPを見ると、一部文字化けして、「□□」というように表示されます。特に特殊な漢字などではないと思います。他のページは、きちんと表示されます。 エンコードを見ると、unicode(UTF-8)というところに、チェックがついています。他のコードにすると、文字化けしまくりです。 何が原因なのでしょうか? 文字コードの問題でしょうか? それともファイルが壊れているのでしょうか?

  • 文字の登録について

    パソコンに登録されていない文字を登録したいです。 例) 渡辺→渡邉と入力したいが「邉」がパソコンに登録してない場合。 上記の状態では「渡邉」と入力できないので「邉」を入力できるようにしたいです。 文字コードが無いからだと思うのですが「渡・」と文字化けではないのですが「邉」が「・」で 表示されております。 サーバー:Microsoft SQL Server 2008 クライアント:Windows XP Service Pack 3 サーバー側はOfficeがインストールされてません。。 クライアント側はOffice2003がインストールされております。 上記の環境の場合に、新しい文字の登録方法をご教授願えますでしょうか?

  • SQL ServerのUNICODE設定について

    SQL Server 2005を使っていますが、SJIS形式で格納された、Oracleの データを、SQL ServerのUNICODEで構成されたテーブルに、ロードする 必要があります。 Oracleでは、異なる文字コードの場合、SQL Netが自動的に、文字 コードを判断して、自動変換してくれますが、SQL Serverでは、 どのようになりますか?SQL Native Client等が、自動変換してくれる のでしょうか? お手数ですが、どなたかお教え下さい。

  • Unicodeは使うべきなのでしょうか?

    ※いまいち文字コードの事が良くわかっていない者です。 今まで、半角1バイト 全角2バイトでプログラミングして来ました。 しかし最近Unicodeの存在に興味や疑問や怖さが募っています。 ■質問1 ・半角1バイト 全角2バイトという扱いは  将来的に廃止され締め出されてしまう危険などが有るのでしょうか? ■質問2 ・ブラウザ/一部チャットのように多言語同時表示は  文字数分大量の無駄なデータ送信負荷になってないのでしょうか?  時に1文字6バイトにすらなるとも聞くだけに疑問です。 ■質問3 ・Unicodeだと、半角1バイト 全角2バイトの扱いに比べ  保存も管理も通信も、無駄が増えるだけにも思えてしますます。  Unicodeをプログラマーの皆さんはどう認識し使ったり使い分け  しているのでしょうか? 漠然とした質問で申し訳ないですが、 何かご助言を頂けますと幸いです。