🐑
【Rust】日本語を含む文字列をURLエンコードしたい
概要
例えば日本語をURLにパラメータとして設定する場合など、URLエンコードを行います。URLエンコードの概要についてはURLエンコードとはを参照句ください。
今回はRustでURLエンコードした文字列を取得したい場合、どうすれば良いかというのをメモ書きします。
対応
percent-encodingというクレートを使います。今回の記事で使用したバージョンはは2.1.0
です。
percent-encoding2.1.0では、utf8_percent_encodeというメソッドが用意されているので、これを使用します。
なお、引数に指定するNON_ALPHANUMERIC
については記号文字もエンコードの対象とするので、除外したい文字があればRustが読めなくても雰囲気で実装するOauth1.0(とTwittere API、時々HTTP1.1)の記事で紹介されているように、エンコード対象外としたい文字列を設定することもできます。
実装サンプル
use percent_encoding::{utf8_percent_encode, NON_ALPHANUMERIC};
async fn get_url_encode(keyword: String) -> String {
// キーワードをURLエンコード
let encoded_keyword = utf8_percent_encode(&keyword, NON_ALPHANUMERIC).to_string();
let url_encoded = format!(
"http://samle.com?keyword={keyword}",
keyword = encoded_keyword
);
return url_encoded;
}
Discussion