文字のコードを表示するには?

解決


素人さん  2006-03-02 02:41:21  No: 130489

テキストボックスに入力した文字のSJISコードとunicodeコードを表示する方法(その逆も)が知りたいです。
例)「愛」という漢字をテキストボックス1に入力すると,
テキストボックス2にSJISコードを表す"88A4"が表示される
テキストボックス3にunicodeを表す「U+611B」が表示される
逆は,unicodeの "611B" を入力すると文字”愛”が表示される
SJISの"88A4"を”愛”に変換する方法は過去ログで分かりました。


魔界の仮面弁士  2006-03-02 03:16:12  No: 130490

環境を書きましょう。
VB6/VBA と VB.NET と VBScript(HTA等)では、コードも変わります。

VB6/VBA なら、こんな感じ。Chr関数/ChrW関数を使います。
逆変換は、Asc関数 / AscW 関数です。

Private Sub Text1_Change()
    Dim S As String
    S = Left(Text1.Text, 1)
    If S = "" Then
        Label1.Caption = ""
        Label2.Caption = ""
    Else
        Label1.Caption = "U+" & Right("0000" & Hex(AscW(S)), 4)
        If Asc(S) < 0 Then
            Label2.Caption = Right("0000" & Hex(Asc(S)), 4)
        Else
            Label2.Caption = Right("00" & Hex(Asc(S)), 2)
        End If
    End If
End Sub


素人さん  2006-03-02 19:33:46  No: 130491

魔界の仮面弁士様ありがとうございました。
Chr関数/ChrW関数を使って逆変換も成功しました。
あと一点だけご存じでしたら教えてください。
漢字「愛」のユニコードは611Bですが,word文書を16進ダンプで表示すると1B61と逆に格納されています。どうしてなのでしょう?
(前回質問したWindows File Timeの時も,これに気づかず苦戦しました。)


T★M  2006-03-02 20:28:31  No: 130492

エンディアン を調べてみてください。

http://www.google.co.jp/search?hl=ja&q=%E3%82%A8%E3%83%B3%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=


魔界の仮面弁士  2006-03-02 20:51:58  No: 130493

> 漢字「愛」のユニコードは611Bですが,word文書を16進ダンプで表示すると
> 1B61と逆に格納されています。どうしてなのでしょう?
逆というわけでは無かったりします。(むしろ Windows にとっては標準的)

そもそも、Unicode という文字集合(charset)の符号化方式(encoding)は、
一種類だけではありません。U+611B だからといって、そのバイナリ表現まで
61,1B であるという事ではありません。

たとえば、U+611B の 『愛』(CJK UNIFIED IDEOGRAPH-611B)を表すにしても
    UTF-7 エンコード
        2B 59 52 73 2D
    UTF-8 エンコード
        E6 84 9B
    UTF-8 エンコード(BOM付)
        EF BB BF E6 84 9B
    UTF-16LE エンコード
        1B 61
    UTF-16BE エンコード
        61 1B
    UTF-16 エンコード(BOM付き)リトルエンディアン
        FF FE 1B 61
    UTF-16 エンコード(BOM付き)ビッグエンディアン
        FE FF 61 1B
などと、幾つかの Unicode 表現があったりします。
http://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm


素人さん  2006-03-03 19:39:39  No: 130494

T★M様ならびに魔界の仮面弁士様
大変参考になります。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加