• 締切済み

BASE64による全角文字のエンコード・デコードのコーディング(VB)

こんにちは、初めて質問します。 私は現在BASE64(VB)を制作中の者です。半角英数のエンコード・デコードのコーディングは完成したのですが、全角文字となると手も足も出ない状態です。 そこで、これのついて御存知の方、全角文字のエンコード・デコードのコーディング方法を教えて下さい。 サンプルコードも見せていただければ幸いです。 宜しくお願いします。

みんなの回答

  • SUZUYUU
  • ベストアンサー率33% (2/6)
回答No.2

書き方はいろいろあると思いますが、参考までにデコードの例・・・。 ※ソースをそのまま貼り付けたら、かなりみづらくなってしまいました。 Sub Main() Dim pos As Long Dim Out1 As Long Dim Out2 As Long Dim prst As Long Dim rText As String rText = "%82%B1%82%EA%82%C5%82%C5%82%AB%82%E9%82%CD%82%B8%82%C5%82%B7%81B" pos = 1 Do prst = InStr(pos, rText, "%") If prst = 0 Then Exit Do Out1 = Int("&H" & Mid$(rText, prst + 1, 2)) If ((&H81 <= Out1 And Out1 <= &H9F) Or _ (&HE0 <= Out1 And Out1 <= &HEF)) Then If Mid$(rText, prst + 3, 1) = "%" Then Out2 = Int("&H" & Mid$(rText, prst + 4, 2)) If &H40 <= Out2 And Out2 <= &HFC Then rText = Left$(rText, prst - 1) & Chr(Val("&H" & Mid$(rText, prst + 1, 2) & Mid$(rText, prst + 4, 2))) & Right$(rText, Len(rText) - prst - 5) Else rText = Left$(rText, prst - 1) & Chr(Val("&H" + (Mid$(rText, prst + 1, 2)))) & Right$(rText, Len(rText) - prst - 2) End If pos = prst + 1 Else Out2 = Asc(Mid$(rText, prst + 3, 1)) If &H40 <= Out2 And Out2 <= &HEF Then rText = Left$(rText, prst - 1) & Chr(Val("&H" & Mid$(rText, prst + 1, 2) & Hex(Asc(Mid$(rText, prst + 3, 1))))) & Right$(rText, Len(rText) - prst - 3) Else rText = Left$(rText, prst - 1) & Chr(Val("&H" + (Mid$(rText, prst + 1, 2)))) & Right$(rText, Len(rText) - prst - 2) End If pos = prst + 1 End If Else rText = Left$(rText, prst - 1) & Chr(Val("&H" + (Mid$(rText, prst + 1, 2)))) & Right$(rText, Len(rText) - prst - 2) pos = prst + 1 End If Loop Debug.Print rText End Sub

全文を見る
すると、全ての回答が全文表示されます。
  • terra5
  • ベストアンサー率34% (574/1662)
回答No.1

単に、1byteづつ変換すればいいだけだと思いますが。 BASE64は、単に1byteのバイナリ(0~255)を文字に置き換えているだけですから、半角も全角も関係無いはずです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • base64_decodeに関して

    base64でエンコードされたPHPソースをデコードし、 その内容を表示させるスクリプト(base64.php)を 実行すると、ブラウザには decode.txt の様に 文字化けした内容が表示されます。 元のソースを表示させる方法は無いでしょうか? base64.php、decode.txt は以下よりダウンロードし、 検討して下さい。 ================================================================ http://www.hp-toolbox.com/base64_decode.zip ================================================================ 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • バッチファイル内に含まれる全角文字を,エンコードしてすべて半角文字で記

    バッチファイル内に含まれる全角文字を,エンコードしてすべて半角文字で記述する事はできないでしょうか。漢字等を,依存文字を含まないASCII文字であらわしたいのです。HTMLでいうHTMLエンティティのように……。 ただしエンコードされた文字列をコマンドでデコードするというような面倒な処理過程があっても結構です。

  • 半角文字と全角文字のencodeのちがい

    お世話になります。 Linux JSP-Servletにて開発を行っているのですが。 JSPにて、半角の「ア」と全角の「あ」をURLEncoder.encodeでエンコードし、Servletに送信し、 Servlet内でURLDecoder.decodeでデコードしようとしているのですが、半角の「ア」はうまくencode,decodeされている(デバッグで出力すると「ア」と表示されている)のですが、全角の「あ」はうまくdecodeして「あ」と出力されません、URLEncode、URLDecodeは全角文字では使用できないのでしょうか? Linuxにて全角日本語を扱うときの方法について ご存知のかたよろしくお願いします。

    • ベストアンサー
    • Java
  • base64?デコード?

    「テキストファイルを送るからデコードして使って」と言われ、 下記のような内容のファイルをもらったのですが、デコードとはどうすればいいのでしょうか? ・1つ目のテキストファイル "begin-base64 664 ○○(ファイル名).zip&#xA;fsjiiafaBABAEakhajkiij~(以降ランダムな文字列)" info="base64&gt;&gt;zip" ・2つ目のテキストファイル "FkufaskKKSDOkaklaaeiijjn~(以降ランダムな文字列)=" info="○○(ファイル名)&#xA;base64-&gt;rar" ネットで調べて、「このテキストファイルをバイナリソフトでデコードすれば目的のファイルになる」 ということはわかったんですが、 テキストの中のどこからどこまでをコピーすればいいのかわかりません。 ランダムな文字列の部分だけの新しいテキストファイルをつくってデコードをしたんですがエラーが出ました。 エンコードしたソフトでデコードすればいいのでしょうか? よろしくお願いいたします。

  • VB6.0 Base64のデコード方法を教えてください

    VB6.0 でメールソフトを作っているのですが、受信したメールのヘッダで Subject 部分を見ると、 Subject: =?ISO-2022-JP?B?GyRCJCIkJCQmJCgkKhsoQg==?= と訳の分からないアルファベットになってしまっています。 この Subject を日本語にする方法を教えてください。 一応、Base64のデコードという方法を知りましたが、この処理をVBで実行する場合のコードが分かりません。 工程的には下記の通りかと… サブジェクトの文字列から「?ISO-2022-JP?B?」の文字列の次のから「?=」までの間の文字列を抽出し、 GyRCJCIkJCQmJCgkKhsoQg== をネタに下記の処理。 1.各文字を2進数表記(6ビット単位)に変換(RFC 2045の Table 1 を使う)。 2.2進文字列(6ビット単位)を8ビット単位でまとめる。 3.8ビット単位の2進数をASCIIコードに変換。 4.シフトJISに変換。 ちなみに、この Subject の答えは あいうえお です。 分かる方、VBコードを教えてください。

  • Turbo C++での文字列のエンコード(Base64)

    Turbo C++(Explorer)を使っているのですが、文字列のエンコードってどうすればできるのでしょうか? 下記のような記事も見たのですが自分の使用している環境ではIndyコンポーネントがありません。 何か良い方法ありますでしょうか?お願いします。 -------------------------------- Base64エンコード・デコードする機能は、Indyコンポーネントで提供されています。 Base64のエンコードにはTIdEncoderMIME、デコードにはTIdDecoderMIMEを使います。 //文字列のエンコード AnsiString Src = "こんにちは、世界"; AnsiString Ret = IdEncoderMIME1->Encode(Src); // Ret == "grGC8YLJgr+CzYFBkKKKRQ==" --------------------------------

  • MIMEでエンコードされたMailのSubjectのデコード、エンコード

    mailにおいて、MIMEにてエンコードされたSubject: の内容をテキストに落とすと例えば下のような エンコードされた文字列になります。 これをデコードし、かつエンコードするための VisualC++のコードを教えてください。 Subject: =?ISO-2022-JP?B?GyRCJTUlcyVXJWslYSUkJWsbKEI=?= よろしくお願いします。

  • BASP21によるbase64のデコードについて

    base64でエンコードされた画像ファイルを表示したいと思っています。 basp21でデコードして、BinaryWriteで書き出したんですがうまく表示できません。 CAPICOMを使った場合は正しく表示されます。 basp21でデコードする際になにか処理をはさむ必要があるのでしょうか? 以下作成したサンプルソースです。 ---ソース------------------------------------------ <%@ Language="VBScript" %> <% Set Stream = Server.CreateObject("ADODB.Stream") Set CAPIUtil = Server.CreateObject( "CAPICOM.Utilities" ) Set objBasp = Server.CreateObject("basp21") strEncoded = "/9j/kL・・base64でエンコードされたJpegファイル" strDecoded = CAPIUtil.Base64Decode( strEncoded ) strDecoded2 = objBasp.Base64(strEncoded, 1) Response.ContentType = "image/jpeg" ' Response.BinaryWrite strDecoded ' Response.BinaryWrite strDecoded2 %> ---------------------------------------------ここまで----- 以上よろしくお願いいたします。

  • [ 文字列 -> ファイル ] BASE64デコード

    文字列又は、クリップボードから、 指定した保存先にファイルとして、 BASE64デコード出来るソフトは、ないでしょうか? アップロード機能のないブログサービスで、 公開したい文書などをBASE64エンコードして、 公開しているのですが、初心者でも分かり易く、 ダウンロードしてもらうために、 上記のようなソフトがあればと探しているのですが、 見つかりません。 何か、良い方法がございましたら、 教えてください。よろしくお願いします。

  • Access97:漢字を除いて全角文字の入力を禁止するには

    使う文字 漢字、半角英数、半角カタカナ、半角括弧() 禁止文字 全角英数、全角カタカナ ひらがな どうやったら入力制限出来るでしょうか?

このQ&Aのポイント
  • Hll3230CDWのドラム交換後、カウンターを初期化する方法が分かりません。
  • パソコンやスマートフォンのOS、接続方法、Wi-Fiルーターの機種名、関連するソフト・アプリ、電話回線の種類について詳細を教えてください。
  • ブラザー製品に関する質問です。
回答を見る

専門家に質問してみよう