C#で文字コードを調べるプログラムを作成しています。
そこで2つ質問をさせてください。
1つ目(文字コード調べ)
TextBoxに漢字を入力して,各エンコーディングの文字コードを調べるときに,UNICDEの場合,
Encoding enc_default = Encoding.GetEncoding(932);
string input = tb_input.Text;
byte[] byte_input = enc_default.GetBytes(input);
string outtext_unicode = "";
Encoding enc_unicode = Encoding.Unicode;
byte[] byte_unicode = Encoding.Convert(enc_default,enc_unicode, byte_input);
foreach (byte b in byte_unicode)
{
outtext_unicode += string.Format("{0:X}", (int)b);
}
tb_output_unicode.Text = outtext_unicode;
とすると,調べたい文字コードがLE(リトルエディアン)で出力されます。これをBE(ビッグエディアン)で出力されるにはどうしたらよいでしょうか?
ご存知の方がいらっしゃいましたら,ぜひ教えてください。
よろしくお願いいたします。
2つ目(文字コードから文字を取得する)
上記の質問と逆のパターンで,TextBoxに文字コードを入力してもらい,人間が読める文字に変換する場合下記のようなコードを書くと,
string codePoint_string = tb_output_unicode.Text;
int codePoint = int.Parse(codePoint_string);
char c = (char)codePoint;
tb_input.Text = Convert.ToString(c);
ASCIIの文字コードを入力した場合には,きちんと変換してくれるのですが,漢字の文字コードを入力すると,FormatExceptionが発生します。
何か勘違いをしているのかもしれませんが,いまいちやり方が創造できません。
こちらも,ご存知の方がいらっしゃいましたら,ご教示願います。
No.2ベストアンサー
- 回答日時:
フォームデザイナで,
Form1に対し,TextBox1とButton1を貼り付け,以下のコードを入力。
=============================
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim codePoint_string As String = TextBox1.Text
Dim codePoint As Integer = Integer.Parse(codePoint_string)
Me.Text = Char.ConvertFromUtf32(codePoint)
End Sub
End Class
'=========================
その後
http://homepage3.nifty.com/jgrammar/ja/tools/cod …
を利用して
文字「あ」がUTF-32で00003042=12354であることを確認後
TextBox1に12354を入力してButtonをクリックしたら
Form1に「あ」が表示された。・・・けどUTF-16だから違うんだよね?
http://msdn2.microsoft.com/en-us/library/wdh8k14 …
とか
http://msdn2.microsoft.com/en-us/library/z2ys180 …
とか使うのかもしれないけど良く解らん。
「あ~」と思わず叫んでしまいました。
そうですよね。
00003042=12354
ですよね。思い違いをしてました。FA11とか指定して,普通にInt.Parseしてました。
C#なので,
string codePoint_string = tb_output_unicode.Text;
int codePoint = Convert.ToInt16(codePoint_string, 16);
char c = (char)codePoint;
tb_input.Text = Convert.ToString(c);
で,文字を取り出せました。
本当にありがとうございます。上の回答とあわせて本当に感謝感激です。
No.1
- 回答日時:
俺はVB.NET系のユーザだ。
ファイルやらビットやらは苦手で、殆ど検証していない。
なので勘だ。
(1)
System.Text.Encoding.Unicodeプロパティではなく
http://msdn2.microsoft.com/en-us/library/system. …
System.Text.Encoding.BigEndianUnicodeプロパティを使うとどうなるか教えて欲しい
http://msdn2.microsoft.com/en-us/library/system. …
早速のアドバイスありがとうございます。
Encoding.BigEndianUnicode
で,満足できました。
見落としてました。本当に助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Visual Basic(VBA) Selenium Basicの件 5 2023/04/10 20:55
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
byte[] を long,float とかに...
-
ダブルクォーテーションのrepla...
-
javascriptで文字列のsjis利用...
-
JavaのStringクラスに「外字」...
-
文字列の比較
-
javaで質問です。 文字列2023/2...
-
UTF-16LEにエンコード
-
C言語32bitから64bitの移行につ...
-
Windows-31Jからutf-8への変換...
-
replace関数で複数の文字の変換...
-
Path型をString型へ変換する(Java)
-
Arduino(C言語) String "1101" ...
-
Visual Basic でのコードをASCI...
-
int型のゼロ埋め
-
なぜか + が半角スペースに変換...
-
error C2440: 'static_cast' : ...
-
TEXTAREAからのデータを改行入...
-
UTF-8とUnicodeの互換性
-
CStringをLPCTSTRへ変換
-
COBOLで半角カナを全角カナに変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルクォーテーションのrepla...
-
javaで質問です。 文字列2023/2...
-
javascriptで文字列のsjis利用...
-
Path型をString型へ変換する(Java)
-
Visual Basic でのコードをASCI...
-
int型のゼロ埋め
-
エクセルVBAで「〜」が表現でき...
-
JavaのStringクラスに「外字」...
-
UTF-8とUnicodeの互換性
-
C言語32bitから64bitの移行につ...
-
文字列の比較
-
byte型のマイナスの扱いについて
-
Windows-31Jからutf-8への変換...
-
COBOLで半角カナを全角カナに変換
-
javaの初歩的な質問です。
-
カタカナをローマジに変換する。
-
魚眼画像から(パノラマのよう...
-
DBから取得したデータの文字化け
-
「C#」文字コードの取得&文字変換
-
[Javascript]エンターキー押下...
おすすめ情報