• 締切済み

VBでテキストをUTF-8で表示するには?

VB超初心者です。 例えばTextBox1に「あいうえお」とあった際に、ボタンを押すとUTF-8に変換し、 TextBox2に「%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a」と テキストで表示したいのですが上手くいきません。 いろいろとHPを参考にしながら、”System.Text.Encoding.UTF8.GetBytes"で 取得した値を"toStrings"で文字列すればいいのかな・・・などとやってみても 上手くいかず・・・ ご説明いただいても理解が追いつくか不安もありますが、ご教授願えれば幸いです。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

ExcelなどのVBAです。 http://stabucky.com/wp/archives/4237を参考にしました。 VBE画面で、ツールー参照設定 Microsoft ActiveX Data Objects 2.8 Library にチェックを入れて「OK」 ーーー 標準モジュールに Sub test01() Dim x As String x = Range("A1") MsgBox x y = encodeUTF8(x) MsgBox y End Sub 'ーー₋UTF8に変換のための単機能の関数定義。上記WEB記事から。 Function encodeUTF8(mytext As String) As String Dim mystream As New ADODB.Stream Dim mybinary, mynumber With mystream .Open .Type = adTypeText .Charset = "UTF-8" .WriteText mytext .Position = 0 .Type = adTypeBinary .Position = 3 mybinary = .Read .Close End With For Each mynumber In mybinary encodeUTF8 = encodeUTF8 & "%" & Hex(mynumber) Next End Function ーー エクセルシートでデータ例を作る。 上記WEB記事との関連で A1セルに「あア亜」を入れる。 A3に %E3%81%82%E3%82%A2%E4%BA%9C を貼り付け。 ーー test01を実行。 表示されたMsgboxの綴りと、A3セルの文字列の内容が一致することを確認。 小生はあまり慣れた分野ではないので、初めの一歩のご案内。 ーーー Googleで 「vba utf-8に変換」 で照会すればたくさん記事がある。 ここに質問する前に、検索して、上記回答ぐらいやってみて、 その中での疑問に絞って質問すること。

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは JavaScriptで encodeURIComponent を、使ってみてはどうですか?