• 締切済み

VBでShift_JISへurlエンコードできないでしょうか?

VB6もしくはVBAですが、 文字列をShift_JISへurlエンコードしたいと思います。 utfやeucは方法があったのですが、Shift_JISに関しては 見つかりませんでした。 よろしくお願いします。

みんなの回答

回答No.1

ASPには関数があるのですが、VB6.0のVBAにはどうだったか・・・ まぁ、コードとしてもたいした量ではないので。 Option Explicit Private Sub Command1_Click() Text2.text = UrlEncode(Text1.text) End Sub Private Function UrlEncode(ByVal text As String) As String Dim i As Integer, bWide As Boolean Dim bytes() As Byte Dim ret As String ret = "" ' Shift_JISのバイト配列に変換 bytes = StrConv(text, vbFromUnicode) For i = 0 To UBound(bytes) ' 2バイト文字をエンコード If bWide Or (bytes(i) And &H80) Then ret = ret & "%" & Right("00" & Hex(bytes(i)), 2) bWide = Not bWide ' スペースを置き換え ElseIf bytes(i) = &H20 Then ret = ret & "+" ' 1バイト文字はそのまま Else ret = ret & Chr(bytes(i)) End If Next UrlEncode = ret End Function かなり大雑把な判定なので細かいところは加筆修正してください。(他にもエスケープし忘れている文字がある気がする・・・)

関連するQ&A

  • Shift-jisのPerlから、UTF-8、EUC、Shift-jisの3つのエンコードテキストを生成

    Shift-jisで作ったPerlにて、テキストをEUC、UTF-8、Shift-jisにエンコードし外部検索サイト等にテキストリンクを飛ばしたいのですが、うまくいきません。 過去ログにUTF-8から、EUC、UTF-8、Shift-jisへのエンコード方法をみつけ http://oshiete1.goo.ne.jp/qa3745875.html 試行錯誤しましたが、Shift-jisからはうまくいきませんでした。 perl のバージョンは5.8.8です。 ご教示のほどよろしくお願いします。

    • ベストアンサー
    • Perl
  • C++でURLのエンコード

    文字列をShift-JisとUTF-8とEUCにエンコードしたいのですが、エンコードしてくれる関数とかC++でないですかね? やっぱり1バイトずつ調べて自分で変換するしかないのでしょうか? どなたかご教授お願いします。

  • シフトJISでURLエンコード

    IEのJavaScriptのescapeで日本語をURLエンコードすると、UnicodeでURLエンコードしてしまいますが、シフトJISのままURLエンコードする方法はないのでしょうか? 文字列のシフトJISコードを取得する方法でも良いのですが・・・。 まったく、Unicodeなんて役に立たないものを無理矢理標準にしようとしないで欲しいナ!>MS

  • UTF-8 と SHIFT-JIS について

    UTF-8 と SHIFT-JIS について SHIFT-JIS は 半角文字でも全角文字でも 2 バイトとなる UTF-8 は 半角文字でも全角文字でも 1 バイトとなる この認識が正しいかどうかどなたか教えてください!

  • UTF-8のPerlから、UTF-8、EUC、Shift-jisの3つのエンコードテキストを生成

    UTF-8で作ったPerl内で、UTF-8にエンコードしたい部分とは別に、 EUCやShift-jisにエンコードして、 UTF-8以外の仕様になっている検索エンジンなどの検索結果に、 テキストリンクを飛ばしたいのですが、行き詰まりました。 いい方法はありますでしょうか。

    • ベストアンサー
    • Perl
  • 文字コードを指定する際sjisなのかshift_jisかshift-jisなのか

    お世話になります。 perl5.8において文字コードを指定or変換する際 shift_jis shift-jis Shift_JIS SJIS EUC_JP EUC-JP utf-8 utf8 -と_の違いや大文字小文字の違いなど記述の違いを良く見かけるのですが、実際決まった指定方法などはあるのでしょうか。 逆に文字コードを指定する際、●●のように指定しても無効で●●のように指定しないと有効ではないですよ。。みたいな。 またperlに限らずPHPやHTML、XMLなどではどうなっているのでしょうか どなたかご存知の方いましたら ・上記3つの文字コードについてと ・perlのバージョンの違い、言語の違いなど 文字コードの文字列の指定に関する全般についてご教授願えませんでしょか。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • セルに入力されている文字列をUTF-8形式にURLエンコードする方法

    Excelでセルに入力されている文字列をUTF-8形式にURLエンコードする方法を探しています。 下記のURLでShift-JISにURLエンコードできるものは提供されているのですが、 UTF-8に変換できるものは見つかりませんでした。 。 http://www.vector.co.jp/soft/winnt/net/se369699.html どうぞよろしくお願いいたします。

  • Shift_JISからUTF-8への変換について

    いつもお世話になります。 UTF-8には4バイト文字がありますが、Shift_JIS(CP932)からUTF-8へ変換する際、 Shift_JISでは2バイトで表わされる文字が、UTF-8では4バイトで表わされてしまう文字はありますでしょうか。 宜しくお願いします。

  • VB2008EE でS-JISでエンコードできない

    お世話になります。 VB初心者でシリアル通信(RS232C)を作っております。 送受信は出来るようになったのですが、全角文字が送信・受信共に文字化けします。 英数字が正常に通信できることからエンコードが「UTF-8」になっていると思われますが、これを「S-JIS」に変更する方法がわかりません。インターネットでも色々調べているのですがVB2008は内部コードがUTF-8になっているみたいです。 送信する文字と受信する文字をS-JISでエンコードしたいのですが定義方法とかご存知の方がいましら教えていただければと思います。 今までC言語(PCM)を使っておりましたのでVBはまったくの素人です。 意味不明な質問になっているかもしれませんがご理解の上宜しくお願いいたします。

  • charset=UTF-8なのにShift-JISになっちゃいます!

    <META http-equiv=content-type content="text/html; charset=UTF-8"> と記述して、ブラウザ(IE6)で確認したのですが真っ白な画面になり、ブラウザのエンコードを確認した ところShift-JISになっていました。自動選択にしてもShift-JISになってしまいます。 UTF-8でどうしてもウェブを作りたいのですがエンコードがShift-JISにならない方法を教えていただけないでしょうか? 使っているエディタは秀丸です。

    • ベストアンサー
    • PHP

専門家に質問してみよう