• ベストアンサー

日本語の文字列コードを変換する方法

CもしくはC++で例えば、あるテキスト内の日本語で書かれた次のような部分のみを 「http://www.google.co.jp/search?hl=ja&q=おしえて」 以下のように 「http://www.google.com/search?hl=ja&q=%E2%80%8B%E3%81%8A%E3%81%97%E3%81%88%E3%81%A6」 ブラウザでリンクとして読めるコードに書き換える方法もしくは、そのためのキーワード等ヒントをお教えいただけますでしょうか。 また、プログラミングを勉強中ですが、こういうことが質問できる場所が他にありましたら合わせてお教え頂ければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.5

> 環境はWinXP VC Expressですので それであれば、wchar_tを経由すればシフトJISとUnicodeの変換ができると思います。mbstowcsおよびwcstombsを調べてみてください。 (Express EditionなのでWin32 APIは使わない前提です。また、C++/CLIとは書かれていないので、.NET Frameworkも使わないものと想定しています) ISO-2022-JP, SHIFT_JIS, EUC-JPの間の変換は計算でできますし、UnicodeとUTF-8の間も計算でできますので、上記の方法で、日本語の文字コードに関してはほぼ網羅できるかと思います。 # TRONコードとかはもう少し努力が必要ですが...

latifolius
質問者

お礼

2度目のご回答ありがとうございます。 下記ののあたりですね。サンプルをいじってみます。 http://always-pg.com/c/runtime_rd/string/mbstowcs.html

その他の回答 (4)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

基本的には#3の回答のとおりで、ISO-2022-JP, SHIFT_JIS, EUC-JPの間の変換は計算でできますが、UnicodeやらISO 10646やらになると表引きにするのが妥当です。 せめて環境がわかっていれば、ICUやらliniconvやらTclやらをお勧めできるのですが... 残念ながら処理系に依存しない方法ではありません。

latifolius
質問者

お礼

環境はWinXP VC Expressですので#3の方法でうまくいきそうです。試してみます。ありがとうございます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

ISO-2022-JP, SHIFT_JIS, EUC-JP の間であれば簡単に変換できるんだけど, Unicode 系になると「表を見る」のがベスト. で, そんな表は作っていられないので既にある変換用のライブラリを使うのが得策. メジャーなのは ICU かな. これで UTF-8 にでも変換して, あとは #1 の通り.

latifolius
質問者

お礼

なるほど、自分がUnicodeでつまづいていることがわかりました。 ICUとは個々に紹介されているものですね。 http://www.emaki.minidns.net/Programming/tools/icu/index.html ありがとうございます。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.2

> そのためのキーワード等ヒント 「UTF-8」とか・・・ #「教えて!サーチ」で検索すると、結構いろいろHITしますね。

latifolius
質問者

お礼

ありがとうございます。googleのURLの場合はUTF-8で書かれているのですね。

  • TA-HT81S
  • ベストアンサー率39% (72/184)
回答No.1

「おしえて」をバッファbuffに取り込んで、 printf("%x",buff[i++]);で1バイトずつ取り出して繋げばいいのでは? 事前に、目的の文字コードにしてからバッファに入れる必要があります。

latifolius
質問者

お礼

ありがとうございます。文字コードのあたりが良くわかったいないので、一覧表や変換用のなにかををお教えいただけると助かります。

関連するQ&A

  • 日本語の文字列コードを変換する方法

    例えば、あるテキスト内の日本語で書かれた次のような部分のみを 「http://www.google.co.jp/search?hl=ja&q=おしえて」 以下のように 「http://www.google.co.jp/search?hl=ja&q=%E3%81%8A%E3%81%97%E3%81%88%E3%81%A6」 ブラウザでリンクとして読めるコードに書き換える方法もしくは、そのためのキーワード等ヒントをお教えいただけますでしょうか。 また、プログラミングを勉強中ですが、こういうことが質問できる場所が他にありましたら合わせてお教え頂ければ幸いです。

    • ベストアンサー
    • HTML
  • 日本語をURL化 ごはん→%E3%81%94%E3%81%AF%E3%82%93

    たとえばgoogleでごはんと検索すると http://www.google.co.jp/search?hl=ja&q=ごはん ではなく http://www.google.co.jp/search?hl=ja&q=%E3%81%94%E3%81%AF%E3%82%93 となりますよね。 この%E3%81%94%E3%81%AF%E3%82%93部分を生成したいのですが、 例)textboxに日本といれてボタンをおすと%E6%97%A5%E6%9C%ACと表示される。 これはどのようにコーディングすればよろしいでしょうか? 教えてください。お願いします。

  • 日本語URLと文字コード。名称を教えてください。

    例えばブラウザのURL欄に入力した http://ja.wikipedia.org/wiki/日本語 という文字列は、IE以外では、それをテキストエディタなどにコピペすると http://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E8%AA%9E となりますが、この「%(16進数)」の文字コードの名称を教えていただけないでしょうか。 よろしくお願いします。

  • デコードするには?

    ホームページのアクセス解析(キーワード分析)をしたいのですが、 例えば、 http://www.google.co.jp/search?q=%E3%83%87%E3%82%B3%E3%83%BC%E3%83%89&ie=UTF-8&oe=UTF-8&hl=ja&lr=lang_ja とか http://search.yahoo.co.jp/bin/search?p=%A5%C7%A5%B3%A1%BC%A5%C9 などをVBでキーワードのみ書き出すにはどうしたらよいのでしょうか? ログはCSV形式で保存されているので、出来ればこの場合の方法を お教え頂けると大変助かります。説明不足のところは 書いていただければ補足します。お願いします!

  • Web検索式の%で始まる英数字を日本語に戻すには?

    例えば「カレンダー 反映」としてGoogle検索をかけると、 URL欄には http://www.google.co.jp/search?hl=ja&biw=1004&bih=576&q=カレンダー 反映&aq=f&aqi=g-m5&aql=&oq= のように表示されます。これをコピーして他の媒体(メモ帳など)に貼り付けると http://www.google.co.jp/search?hl=ja&biw=1004&bih=576&q=%E3%82%AB%E3%83%AC%E3%83%B3%E3%83%80%E3%83%BC%E3%80%80%E5%8F%8D%E6%98%A0&aq=f&aqi=g-m5&aql=&oq= として貼り付けられますが、 このときの  日本語→%[英数字][英数字]%[英数字][英数字]・・・ という変換規則について教えていただけないでしょうか? (1)文字コードの変換方式。  「○○という文字コードから△△という文字コードに変わった」  などと回答をお願いします。 (2)%[英数字][英数字]%[英数字][英数字]・・・ を日本語に戻す方法。  変換式や変換できるソフト名などを教えてください。 (1)(2)片方だけの回答でも構いませんので、 教えてください。

  • スパイ駆除ソフトの日本語化パッチを探しています。

    http://www.google.com/search?q=cache:sHj-npyKgf4C:pc.2ch.net/pcqa/subback.html+Ad-aware%E3%81%AE%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%8C%96%E3%83%91%E3%83%83%E3%83%81&hl=ja&ie=utf-8 雑誌で、見たのですが、どの雑誌に載っていたか、忘れてしまいました。 検索して、1つ1つ見ていっても、どれも違うみたいです。 Ad-awareです。 使いやすいのですが、これよりも、良いものがあれば、教えてください。

  • ホームページのURLに日本語を使いたい

    http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=DVXA,DVXA:2005-16,DVXA:ja&q=%E3%82%A6%E3%82%A3%E3%82%AD%E3%83%9A%E3%83%87%E3%82%A3%E3%82%A2 ウィキペディア を グーグルで検索(上記URL)すると、 ja.wikipedia.org/wiki/ウィキペディア - 66k - 2005 というURLがヒットします。 通常、URLには、日本語が入っていませんが、今回の検索結果には、日本語が入っています。 このように、URLに日本語を入れるにはどうしたらいいのでしょうか? また、このように、日本語に最適化することで、グーグルのヒット率はあがるものでしょうか? 以上、宜しくお願い致します。

  • 日本国内で上海蟹を安く購入する方法

    No.1072526 の質問をした者です。 旅先で食べた上海蟹 (大閘蟹) の味が忘れられず、帰国後10日もしないうちにまた食べたくなりました。 池袋の輸入雑貨屋 (知音) なら安く仕入れられるかと期待して行ってみたのですが、大きくて美味しそうな蟹は1600円/只 で、私の安月給ではとても手が出ない価格でした。(涙) 安価な蟹も売り場には並んでいましたが、見るからに小さく、おいしそうには見えませんでした。 そこで質問です。 (1) 飲食店の原価率は30%程度だそうですが、国内の飲食店では上海蟹の提供価格はどのぐらいが相場なのでしょうか?(1杯 = 4,000~7,000円前後?) (2) 生きた上海蟹を安価で購入できる小売店は国内にありますか? (3) 安価でサイズの小さい蟹はどんな料理に適しているのでしょうか?(丸のまま蒸して食べるのには向いていないように思いますが・・・) (4) その他、上海蟹の価格、調理法などの情報をご存知の方、教えて頂けると幸いです。 Googleで検索してみましたが、これだけのキーワードではヒットする件数が多過ぎて・・・。(汗 http://www.google.co.jp/search?hl=ja&q=%E4%B8%8A%E6%B5%B7%E8%9F%B9&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja http://www.google.co.jp/search?hl=ja&q=%E4%B8%8A%E6%B5%B7%E8%9F%B9+%E4%BE%A1%E6%A0%BC&lr=lang_ja

  • 同じ単語で検索しても順位が変わります

    顔文字で検索した所 http://www.google.com/search?num=100&hl=ja&ie=Shift_JIS&q=%8A%E7%95%B6%8E%9A&btnG=Google+%8C%9F%8D%F5&lr= と http://www.google.co.jp/search?sourceid=navclient&hl=ja&q=%8A%E7%95%B6%8E%9A は同じ単語ですが上のページで2位のサイトが 下のページでは存在すらしてません なぜこのような事が起きるのでしょうか?

  • 検索エンジンって

    こんばんわ。えっと検索エンジンって、cgiなんですか? グーグルでいろいろ調べると結果の拡張子が無いんですけど、cgiなんですか? 例えば search?hl=ja&q=google&btnG=Google+%E6%A4%9C%E7%B4%A2&lr= 見たいなものです。 グーグルがCで書かれているのは知ってるんですけど、拡張子のことをずっと疑問に思ってました。 よろしくお願いします。