|
|||||
最近ちょっとやる気になり、文字コード表示ツールを作る事にしました。概要は「入力した文字の文字コードを表示するツール」です。 ツールの名前は「文字コード表示ツール.NET」と決めて作り始めたのですが、、、途中で機能追加しているうちに名前が変わってしまいました。 新しい名前は「WEBエンコード/デコードツール」です。もちろん文字コードをHEXコードやDECコードで表示する機能を持っています。 なぜ「WEBエンコード/デコードツール」と言う名前なのか? それは、URLエンコード/デコードやHTMLエンコード/デコードする機能を持っているからです。 「文字コード表示ツール.NET」というより「WEBエンコード/デコードツール」になってしまったのです。 名前は「WEBエンコード/デコードツール」でも、文字コード表示という機能に多くの時間を掛けて作ったので是非評価して欲しいと思います。 文字コード表示というとコード表示のみのようですが、文字コードを入力してその文字を表示する機能(文字コード表示の逆)も持っています。 対応文字コードはSHIFT-JIS、JIS(ISO-2022-JP)、EUC-JP、UNICODE(UTF-16)、UTF-7、UTF-8です。 こんな経緯で出来たWEBエンコード/デコードツールですが、宜しくお願いします。 ちなみに文字コードの表示方法のサンプルを以下に記述します。 1.文字列→文字コード(HEX:16進)のサンプル(EUCの時だけ、改行コードをLFにしています) Dim istr As String() = Split(txtIn.Text, vbCrLf) Dim sb As New StringBuilder("") For l As Integer = 0 To UBound(istr) If l > 0 Then sb.Append(vbCrLf) If l < UBound(istr) Then If cmbChrCode.Text = "EUC-JP" Then istr(l) = istr(l) & vbLf Else istr(l) = istr(l) & vbCrLf End If End If ' エンコード方法を指定して文字コード取得 Dim dat() As Byte = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(istr(l)) For i As Integer = 0 To UBound(dat) ' 文字コード(HEX:16進)変換 Dim str As String = "00" & Hex(dat(i)).ToUpper str = str.Substring(str.Length - 2, 2) If i > 0 Then sb.Append(" ") sb.Append(str) Next Next txtOut.Text = sb.ToString 2.文字列→文字コード(DEC:10進)のサンプル(EUCの時だけ、改行コードをLFにしています) Dim istr As String() = Split(txtIn.Text, vbCrLf) Dim sb As New StringBuilder("") For l As Integer = 0 To UBound(istr) If l > 0 Then sb.Append(vbCrLf) If l < UBound(istr) Then If cmbChrCode.Text = "EUC-JP" Then istr(l) = istr(l) & vbLf Else istr(l) = istr(l) & vbCrLf End If End If ' エンコード方法を指定して文字コード取得 Dim dat() As Byte = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(istr(l)) For i As Integer = 0 To UBound(dat) ' 文字コード(DEC:10進)変換 Dim str As String = "000" & dat(i) str = str.Substring(str.Length - 3, 3) If i > 0 Then sb.Append(" ") sb.Append(str) Next Next txtOut.Text = sb.ToString 3.文字コード→(HEX:16進)文字列のサンプル Dim istr As String = txtIn.Text Dim ilen As Integer Do ilen = istr.Length istr = istr.Replace(" ", "") istr = istr.Replace(vbCrLf, "") istr = istr.Replace(vbCr, "") istr = istr.Replace(vbLf, "") Loop While (istr.Length <> ilen) Dim dat() As Byte = New Byte(-1) {} For i As Integer = 0 To istr.Length - 1 Step 2 ReDim Preserve dat(UBound(dat) + 1) Try ' 文字コード(HEX:16進)取得 dat(i / 2) = "&H" & istr.Substring(i, 2) Catch ex As Exception End Try Next ' エンコード方法を指定して文字列変換 Dim ostr As String = System.Text.Encoding.GetEncoding("UTF-8").GetString(dat) ostr = ostr.Replace(vbCrLf, vbLf) ostr = ostr.Replace(vbCr, vbLf) ostr = ostr.Replace(vbLf, vbCrLf) txtOut.Text = ostr 4.文字コード→(DEC:10進)文字列のサンプル Dim istr As String = txtIn.Text Dim ilen As Integer Do ilen = istr.Length istr = istr.Replace(" ", "") istr = istr.Replace(vbCrLf, "") istr = istr.Replace(vbCr, "") istr = istr.Replace(vbLf, "") Loop While (istr.Length <> ilen) Dim dat() As Byte = New Byte(-1) {} For i As Integer = 0 To istr.Length - 1 Step 3 ReDim Preserve dat(UBound(dat) + 1) Try ' 文字コード(DEC:10進)取得 dat(i / 3) = istr.Substring(i, 3) Catch ex As Exception End Try Next ' エンコード方法を指定して文字列変換 Dim ostr As String = System.Text.Encoding.GetEncoding("UTF-8").GetString(dat) ostr = ostr.Replace(vbCrLf, vbLf) ostr = ostr.Replace(vbCr, vbLf) ostr = ostr.Replace(vbLf, vbCrLf) txtOut.Text = ostr |