• 締切済み

EXCELの関数でエンコードをしたい

MS-EXCELの関数を使ってsjisに エンコードすることはできますか? 参考: ウエダ をs-jisにエンコードすると、 %83E%83G%83_ となります。 エンコードフォーム(http://home.kendomo.net/board/decode/decode.php )使用 宜しくお願い致します。

みんなの回答

  • hakone
  • ベストアンサー率54% (40/73)
回答No.1

こんにちは。 適当にユーザー定義関数を作ってみたけど、 ロジック自体に自信がないです。 Function S_JIS(s1 As String) As String   Dim b() As Byte   Dim s2 As String   Dim i As Long   b = StrConv(s1, vbFromUnicode)   s2 = ""   For i = 0 To UBound(b)     'A~Z、a~z、0~9、* - . @ _ はそのままに。     If b(i) = 42 Or b(i) = 45 Or _       b(i) = 46 Or b(i) = 64 Or b(i) = 95 Or _       (48 <= b(i) And b(i) <= 57) Or _       (65 <= b(i) And b(i) <= 90) Or _       (97 <= b(i) And b(i) <= 122) Then       s2 = s2 & Chr(b(i))     Else       s2 = s2 & "%" & Right$("00" & Hex$(b(i)), 2)     End If        Next   '半角スペースは に変換。   S_JIS = Replace(s2, "%20", "+") End Function ・・・わからん

tihiro_t
質問者

お礼

ありがとうございます。

関連するQ&A

  • javaでエンコードがうまくいかない

    ウエダをs-jisにエンコードしたいのですが、うまくいきません。 エンコードフォーム(http://home.kendomo.net/board/decode/decode.php )使用 結果:%83E%83G%83_ java( String urlu = URLEncoder.encode(url , "SJIS");)使用 結果:%83%45%83%47%83%5F エンコードされた出力結果が異なります。 なぜでしょうか? また、エンコードフォームのエンコード形式(SJIS)でエンコードしたいのですが、 どうしたらよいでしょうか? もし、JAVAでできないなら、EXCELやフリーソフトで エンコードしたいのですが、何かよい手はないでしょうか? ご存知の方教えてください。宜しくお願い致します。

    • ベストアンサー
    • Java
  • JSでURIエンコードしてPHPでデコードしたい

    foo.htmlから読み出されたbar.js内で、リファラーをURIエンコードし、baz.phpでデコードするようにしました。 コードは以下です。 ■foo.html <script type="text/javascript" src="bar.js"></script> ■bar.js //PHPのrawurlencode互換のURIエンコード関数(らしいです) function rawurlencode(str) { return encodeURIComponent(str) .replace(/!/g, "%21") .replace(/'/g, "%27") .replace(/\(/g, "%28") .replace(/\)/g, "%29") .replace(/\*/g, "%2A") .replace(/~/g, "%7E"); }; ref = rawurlencode(document.referrer); document.write('<img src="/bar.php?ref=' +ref); ■baz.php rawurldecode($_GET["ref"]); これでfoo.htmlがUTF8であった場合は正常にリファラが取得できました。(日本語も含め) しかし、foo.htmlがShift-JISであった場合、リファラ内の日本語部分が文字化けしてしまいます。 色々と試行錯誤してはみたのですが、どうしても解消されません。 どなたかお力をお貸しください。 よろしくお願いいたします。

  • 掲示板に携帯から書き込むとURLエンコード

    PHPを使って掲示板を作成しています。 UTF-8でPHPファイルを作成し、UTF-8のテキストファイルにログをためていく感じで作っています。 PCでは、だいたい正常に動くようになったのですが、携帯電話(au/W61S)からの投稿を試してみたところ、投稿結果がURLエンコードの状態になってしまいました。。。 %82%c6%82%a4%82%b1%82%a4%82%c4%82%b7%82%c6 さらにシフトJISでエンコードされているようでしたので、自分のつたない知識を総動員して、以下のような処理をさせることでなんとか形にはなったのですが、かなり処理としては乱暴な気がしています。 携帯電話からの投稿というのは、URLエンコードとして受け取るしかないのでしょうか(auでしか試していないため、他のキャリアだと別の問題が発生するのでしょうか?) また、下記の方法よりももっとスマートに携帯からの投稿を、表示できる文字列に変換する方法をご存じの方がいらっしゃいましたら、ご教授いただければ幸いです。 よろしくお願いいたします。 <?php //フォーム内に入力された文字列を取得 $test = $_GET['formtxt']; //先頭の文字を抽出 $firsttxt = substr($test,0,1); //先頭の文字列が%であれば、URLデコードを行い、シフトJISからUTF-8に変換する if($firsttxt == "%"){ $test = urldecode($test); $test = mb_convert_encoding($test,'UTF-8','SJIS'); } ?>

    • 締切済み
    • PHP
  • エンコードを変えたらHPが真っ白に。

    自分のサイトを、以前はSHIFT-JIS設定にしていました。 PHPの送信で文字化けエラーが起きた為、 設定をEUC-JP設定に変更しました。 そうしたら全てのwebページが真っ白に。。 もちろんエンコードをEUC-JPに変えれば見ることができますが、 初めてページを見る人には真っ白になってしまってういれば エンコードを変える必要があることに気づけないと思います。 色々他のページも見てみたところ、SJISでもEUCでも見れるページもありました。 この設定はどうすれば良いのでしょうか?

    • ベストアンサー
    • HTML
  • urlencodeでエンコードされる文字コードが変わる

    内容が同じSJISとUTF-8のソースを実行すると、それぞれurlencodeでエンコードされる文字コードが変わってしまい困っています。 SJISでもUTF-8と同じようにエンコードをしてパラメタをサーバーに渡したいです。 例: 「株」というキーワードでエンコードすると SJISの場合:%8A%94 UTF-8の場合:%E6%A0%AA urldedodeの結果はどちらとも「株」となる。 php.iniのmbstringを一通りいじってみましたがうまくいきません。 どなかた詳しい方ご教授頂ければと思います。

    • ベストアンサー
    • PHP
  • 日本語のエンコード

    日本語 秘華をPHPでエンコードすると $fname = "秘華"; $name = rawurlencode( $fname ); %94%E9%89%D8 になり Perlで 秘華をPHPでエンコードすると $fname =~ s/(\W)/sprintf("%%%02X", ord($1))/ego; %20%94%E9%89%D8 になります PHPエンコードを%20%94%E9%89%D8 になるにはどのようにすべきですか よろしくお願いします。

    • ベストアンサー
    • PHP
  • エンコードについて

    「タイトル」というテキストを 下記のコードでエンコードすると、 # 検索用エンコード $encode = $code; $encode =~ s/(\W)/'%' . unpack("H2", $1)/eg; $encode =~ tr/ /+/; %83%5e%83C%83g%83%8b となりますが、 %E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB のようにしたいのです。 上記の検索用エンコードをどのように書き換えればできるでしょうか。 似たような記事もありましたが、明確な答えがありませんでした。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 多次元配列をエンコードする関数を作るには?

    多次元配列でも文字コードのエンコードができる関数を 作ろうとしていますが、エラーで躓いています。 自分自身の関数を再帰で呼び出しているので、array_map関数上? 引数が1つしか持てないので、$valueを array($ary, "SJIS", "EUC-JP")として渡しています。 これを実行すると、以下のエラーになります。 何かよい方法はありますか? PHP Notice: Undefined offset: 0 in C:\test.php on line 10 function mb_convert_encoding_deep($value) { //var_dump($value); if( is_array($value) ){ if( is_array($value[0]) ){ array_map(__FUNCTION__, $value); }else{ $value[0] = mb_convert($value[0], $value[1], $value[2]); } }else{ die("ここは通過しないと思いますが自信なし"); } return $value; } $ary = mb_convert_encoding_deep( array($ary, "SJIS", "EUC-JP") ); array_mapの用法でも間違っているのでしょうか?

    • ベストアンサー
    • PHP
  • スペース %20 に変換するには?

    http://home.kendomo.net/board/decode/のようなサイトでは Urlエンコードで スペースが 「%20」に変換されますが、自宅の サーバーでは 「+」になります。 どういう変換をかけるといいのでしょうか?

    • ベストアンサー
    • PHP
  • OSとURLエンコードの関係

    メールに参照としてサイトのURLを記載することがありますが、URLをクリックしても WEBブラウザが起動しないことがよくあります。メールS/WはThunderbirdです。 例: http://www.….jp/index.php?%A5%C1%A5%A7%A5%C3%A5%AF%A5%EA%A5%B9%A5%C8 ※アドレスは編集済 質問(1) 下記の通り推測しておりますが、考えは正しいでしょうか? 考えられる要因としては、全角文字を含むアドレスをサーバがURLエンコードするとOSに 依存したアドレスが生成され、例えば、UNIXサーバでURLエンコードされたアドレスをWindowsの クライアントが開く場合、Windowsがデコードする文字コードが異なるため、正しくデコードできず、 ブラウザが起動しない。 のではないかと考えております。 質問(2) OSのURLエンコード、デコードの関係は下記で正しいでしょうか? また、質問(1)が正しいとすると、文字コード同士の互換性はないということでしょうか?  UNIX … EUC  MAC … SJIS  Windows … Unicode 質問(3) 質問(1)の解決方法はありますでしょうか? 長くなりましたが、ご教授のほどよろしくお願いいたします。

専門家に質問してみよう