2012-02-29 17 views
1

私の一部の文字列のURLエンコーディングをC++で実現しようとしています。文字列は™、®、©などC++でのマルチバイト文字列のURLエンコーディング

入力テキストなどのマルチバイト文字をcontaimことができます。
出力™何かがする必要があります:何か%20%E2%を84%A2

私はURLを達成することができますencodeまたはdecode encodeURIComponentとdecodeURIComponent、 で、しかし私はC++でいくつかのネイティブコードを持っているので、C++経由でいくつかのテキストをエンコードする必要があります。

ここで助けがあれば、私にとって大きな救済となります。

答えて

1

ライブラリが見つからない場合は、手動で行うのは難しくありません。最初に文字列をUTF-8でエンコードします(文字列が別のエンコーディングにある場合は、標準ライブラリを使用してそれを行うことについての他の記事があります)。そして、127文字以上のすべての文字を置き換えます。その文字のパーセントエンコーディング(パーセント記号の後に文字の値を表す2つの16進数字が続きます)。

+0

ランダムgoogle検索によると、制限された文字は ":/?#[] @!$& '()* +、; =" " –

+0

最も簡単な解決策は、' std :: string replacement ['a'] = "a" 'を設定するだけです。 @MooingDuck: '%20'のISTR印刷不能文字も、特にCR、LF、TABに制限されています。 – MSalters