libwordring
名前空間 | クラス | 型定義 | 列挙型 | 関数
wordring::whatwg 名前空間

名前空間

 encoding
 
 html
 
 url
 

クラス

struct  domain_base
 domain [詳解]
 
struct  empty_host_base
 empty host [詳解]
 
class  host_base
 host [詳解]
 
struct  ipv4_address_base
 IPv4 address [詳解]
 
struct  ipv6_address_base
 IPv6 address [詳解]
 
struct  opaque_host_base
 opaque host [詳解]
 
class  public_suffix_list
 
class  url_error_category
 

型定義

using encoding_name = encoding::encoding_name
 

列挙型

enum  host_type_name : std::uint32_t {
  Domain = 1, Ipv4Address, Ipv6Address, OpaqueHost,
  EmptyHost
}
 
enum  url_error_name : int { url_error_name::IdnaTranslationFailed = 1, url_error_name::ParseFailed, ValidationError }
 

関数

template<typename String >
encoding_name get_encoding_name (String label)
 
constexpr bool is_ascii_byte (char ch) noexcept
 
template<typename InputIterator , typename OutputIterator >
void to_byte_lowercase (InputIterator first, InputIterator last, OutputIterator output)
 小文字化する [詳解]
 
template<typename InputIterator , typename OutputIterator >
void to_byte_uppercase (InputIterator first, InputIterator last, OutputIterator output)
 大文字化する [詳解]
 
template<typename InputIterator1 , typename InputIterator2 >
bool is_byte_case_insensitive_match (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2)
 大文字と小文字を区別しないで比較する
 
template<typename InputIterator , typename OutputIterator >
void isomorphic_decode (InputIterator first, InputIterator last, OutputIterator output)
 同型にデコードする [詳解]
 
bool is_surrogate (char32_t cp) noexcept
 
bool is_scalar_value (char32_t cp) noexcept
 
bool is_noncharacter (char32_t cp) noexcept
 
bool is_ascii_code_point (char32_t cp) noexcept
 
bool is_ascii_tab_or_newline (char32_t cp) noexcept
 
bool is_ascii_white_space (char32_t cp) noexcept
 
bool is_c0_control (char32_t cp) noexcept
 
bool is_c0_control_or_space (char32_t cp) noexcept
 
bool is_control (char32_t cp) noexcept
 
bool is_ascii_digit (char32_t cp) noexcept
 
bool is_ascii_upper_hex_digit (char32_t cp) noexcept
 
bool is_ascii_lower_hex_digit (char32_t cp) noexcept
 
bool is_ascii_hex_digit (char32_t cp) noexcept
 
bool is_ascii_upper_alpha (char32_t cp) noexcept
 
bool is_ascii_lower_alpha (char32_t cp) noexcept
 
bool is_ascii_alpha (char32_t cp) noexcept
 
bool is_ascii_alphanumeric (char32_t cp) noexcept
 
template<typename InputIterator , typename OutputIterator >
void isomorphic_encode (InputIterator first, InputIterator last, OutputIterator output)
 
template<typename InputIterator >
bool is_ascii_string (InputIterator first, InputIterator last)
 
template<typename InputIterator , typename OutputIterator >
void to_ascii_lowercase (InputIterator first, InputIterator last, OutputIterator output)
 小文字化する
 
template<typename InputIterator , typename OutputIterator >
void to_ascii_uppercase (InputIterator first, InputIterator last, OutputIterator output)
 大文字化する
 
template<typename InputIterator1 , typename InputIterator2 >
bool is_ascii_case_insensitive_match (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2)
 大文字と小文字を区別しないで比較する
 
template<typename InputIterator , typename OutputIterator >
void ascii_encode (InputIterator first, InputIterator last, OutputIterator output)
 
template<typename InputIterator , typename OutputIterator >
void ascii_decode (InputIterator first, InputIterator last, OutputIterator output)
 
template<typename InputIterator , typename OutputIterator >
void strip_newlines (InputIterator first, InputIterator last, OutputIterator output)
 
template<typename InputIterator , typename OutputIterator >
void normalize_newlines (InputIterator first, InputIterator last, OutputIterator output)
 改行を正規化する [詳解]
 
template<typename ForwardIterator , typename OutputIterator >
void strip_leading_and_trailing_ascii_whitespace (ForwardIterator first, ForwardIterator last, OutputIterator output)
 前後のASCII空白文字を剥ぎ取る
 
template<typename InputIterator , typename OutputIterator >
void strip_and_collapse_ascii_whitespace (InputIterator first, InputIterator last, OutputIterator output)
 
template<typename InputIterator , typename OutputIterator , typename Condition >
InputIterator collect_sequence_of_code_points (InputIterator first, InputIterator last, OutputIterator output, Condition condition)
 
template<typename InputIterator >
InputIterator skip_ascii_whitespace (InputIterator first, InputIterator last)
 
template<typename InputIterator , typename OutputIterator >
void strictly_split_on_particular_delimiter (InputIterator first, InputIterator last, OutputIterator output, char32_t delimiter)
 特定の区切り文字で厳密に分割する
 
template<typename InputIterator , typename OutputIterator >
void split_on_ascii_whitespace (InputIterator first, InputIterator last, OutputIterator output)
 
template<typename InputIterator , typename OutputIterator >
void split_on_commas (InputIterator first, InputIterator last, OutputIterator output)
 
void string_concatenate ()
 
template<typename InputIterator , typename std::enable_if_t< std::is_same_v< typename std::iterator_traits< InputIterator >::value_type, char8_t >, std::nullptr_t > = nullptr>
InputIterator to_code_point (InputIterator first, InputIterator last, char32_t &output)
 文字列からコードポイントを一つ読み取る。 [詳解]
 
template<typename OutputIterator , typename std::enable_if_t< std::conjunction_v< std::is_same< typename std::iterator_traits< OutputIterator >::iterator_category, std::output_iterator_tag >, std::disjunction< std::is_same< typename std::iterator_traits< OutputIterator >::value_type, char8_t >, std::is_same< typename OutputIterator::container_type::value_type, char8_t >>>, nullptr_t > = nullptr>
void to_string (char32_t ch, OutputIterator output)
 ユニコード・コードポイントから文字列に変換する。 [詳解]
 
template<typename InputIterator , typename OutputIterator >
void encoding_cast (InputIterator first, InputIterator last, OutputIterator out)
 文字エンコーディングを変換する便利関数
 
template<typename String , typename Container >
void encoding_cast (String const &in, std::back_insert_iterator< Container > out)
 文字エンコーディングを変換する便利関数
 
template<typename Result , typename String , std::enable_if_t< std::negation_v< std::is_same< Result, String >>, std::nullptr_t > = nullptr>
Result encoding_cast (String const &in)
 文字エンコーディングを変換する便利関数 [詳解]
 
template<typename Result , typename String , std::enable_if_t< std::is_same_v< Result, String >, std::nullptr_t > = nullptr>
Result encoding_cast (String in)
 文字エンコーディングを変換する便利関数
 
bool is_forbidden_host_code_point (std::uint32_t cp)
 forbidden host code point [詳解]
 
std::u32string domain_to_ascii (std::u32string const &s, bool beStrict, std::error_code &ec)
 国際化ドメイン名を ASCII ドメイン名へ変換する [詳解]
 
std::u32string domain_to_ascii (std::u32string const &s, std::error_code &ec)
 
std::u32string domain_to_unicode (std::u32string const &s, std::error_code &ec)
 ASCII ドメイン名を国際化ドメイン名へ変換する [詳解]
 
bool is_valid_domain_string (std::u32string const &s)
 妥当なドメイン文字列 [詳解]
 
bool is_valid_ipv4_address_string (std::u32string const &s)
 妥当な IPv4 アドレス文字列 [詳解]
 
bool is_valid_ipv6_address_string (std::u32string const &s)
 妥当な IPv6 アドレス文字列 [詳解]
 
bool is_valid_host_string (std::u32string const &s)
 妥当なホスト文字列 [詳解]
 
bool is_valid_opaque_host_string (std::u32string const &s)
 妥当な不透明ホスト文字列 [詳解]
 
std::optional< host_baseparse_ipv4 (std::u32string const &in, std::error_code &ec)
 IPv4 parser [詳解]
 
std::optional< host_baseparse_ipv6 (std::u32string const &in, std::error_code &ec)
 IPv6 parser [詳解]
 
std::optional< host_baseparse_opaque_host (std::u32string const &in, std::error_code &ec)
 IPv6 parser [詳解]
 
std::pair< std::optional< std::uint32_t >, bool > parse_ipv4_number (std::u32string s)
 
std::optional< host_baseparse_host (std::u32string const &in, bool isNotSpecial, std::error_code &ec)
 host parser [詳解]
 
std::optional< host_baseparse_host (std::u32string const &in, std::error_code &ec)
 
template<typename OutputIterator >
void serialize_integer (char32_t cp, OutputIterator out)
 整数を直列化する [詳解]
 
template<typename InputIterator >
bool starts_with_percent_encoded_byte (InputIterator first, InputIterator last)
 [first, last) がパーセント・エンコード・バイトから始まる場合、 true を返す [詳解]
 
template<typename InputIterator >
bool is_percent_encoded_byte (InputIterator first, InputIterator last)
 
template<typename OutputIterator >
void percent_encode (uint8_t byte, OutputIterator output)
 
template<typename InputIterator , typename OutputIterator >
void percent_decode (InputIterator first, InputIterator last, OutputIterator output)
 
template<typename InputIterator , typename OutputIterator >
void string_percent_decode (InputIterator first, InputIterator last, OutputIterator output)
 
bool is_c0_control_percent_encode_set (char32_t cp)
 C0 制御文字 % エンコーディング集合 [詳解]
 
bool is_fragment_percent_encode_set (char32_t cp)
 フラグメント % エンコーディング集合 [詳解]
 
bool is_query_percent_encode_set (char32_t cp)
 QUERY % エンコーディング集合 [詳解]
 
bool is_special_query_percent_encode_set (char32_t cp)
 特別 QUERY % エンコーディング集合 [詳解]
 
bool is_path_percent_encode_set (char32_t cp)
 PATH % エンコーディング集合 [詳解]
 
bool is_userinfo_percent_encode_set (char32_t cp)
 
bool is_component_percent_encode_set (char32_t cp)
 コンポーネント % エンコーディング集合 [詳解]
 
bool application_x_www_form_urlencoded_percent_encode_set (char32_t cp)
 FORM URL エンコード % エンコーディング集合 [詳解]
 
template<typename PercentEncodeSet >
std::string percent_encode_after_encoding (encoding_name name, std::u32string const &in, PercentEncodeSet set, bool spaceAsPlus=false)
 文字列をエンコーディング後、 % エンコーディングする [詳解]
 
template<typename PercentEncodeSet >
std::string utf8_percent_encode (char32_t cp, PercentEncodeSet set)
 
template<typename PercentEncodeSet >
std::string utf8_percent_encode (std::u32string const &s, PercentEncodeSet set)
 
template<typename Integer , typename OutputIterator >
void serialize (Integer i, OutputIterator output)
 
std::error_category const & url_category () noexcept
 
std::error_code make_error_code (url_error_name name)
 

詳解

非公開の名前空間。

列挙型詳解

◆ url_error_name

列挙値
IdnaTranslationFailed 

IDNA (国際化ドメイン名)変換中のエラー

ParseFailed 

解析に失敗

関数詳解

◆ to_byte_lowercase()

template<typename InputIterator , typename OutputIterator >
void wordring::whatwg::to_byte_lowercase ( InputIterator  first,
InputIterator  last,
OutputIterator  output 
)
inline

小文字化する

テンプレート引数
InputIteratorvalue_typeがcharである入力イテレータ。
OutputIterator出力イテレータ。
引数
[in]first入力(半開区間)の先頭を示すイテレータ。
[in]last入力(半開区間)の終端を示すイテレータ。
[out]output出力先を示すイテレータ。

[first, last)を[A-Z]があれば[a-z]に置き換えたうえでoutputへ出力する。 出力の範囲チェックは行わないため、十分な容量が確保されているか、あるいは動的に確保される必要がある。 first == outputの場合は、[first, last)自身を小文字化する。

  • 入力と出力が重なっていても問題ないが、要素の追加によるイテレータの無効化、出力を入力が読み取ることによる無限連鎖に要注意。

◆ to_byte_uppercase()

template<typename InputIterator , typename OutputIterator >
void wordring::whatwg::to_byte_uppercase ( InputIterator  first,
InputIterator  last,
OutputIterator  output 
)
inline

大文字化する

テンプレート引数
InputIteratorvalue_typeがcharである入力イテレータ。
OutputIterator出力イテレータ。
引数
[in]first入力(半開区間)の先頭を示すイテレータ。
[in]last入力(半開区間)の終端を示すイテレータ。
[out]output出力先を示すイテレータ。

[first, last)を[a-z]があれば[A-Z]に置き換えたうえでoutputへ出力する。 出力の範囲チェックは行わないため、十分な容量が確保されているか、あるいは動的に確保される必要がある。 first == outputの場合は、[first, last)自身を大文字化する。

  • 入力と出力が重なっていても問題ないが、要素の追加によるイテレータの無効化、出力を入力が読み取ることによる無限連鎖に要注意。

◆ isomorphic_decode()

template<typename InputIterator , typename OutputIterator >
void wordring::whatwg::isomorphic_decode ( InputIterator  first,
InputIterator  last,
OutputIterator  output 
)
inline

同型にデコードする

出力の範囲チェックは行わないため、十分な容量が確保されているか、あるいは動的に確保される必要がある。

◆ normalize_newlines()

template<typename InputIterator , typename OutputIterator >
void wordring::whatwg::normalize_newlines ( InputIterator  first,
InputIterator  last,
OutputIterator  output 
)
inline

改行を正規化する

  • CR(0xD), LF(0xA)
  • CRLF -> LF
  • LF -> LF
  • CR -> LF

◆ to_code_point()

template<typename InputIterator , typename std::enable_if_t< std::is_same_v< typename std::iterator_traits< InputIterator >::value_type, char8_t >, std::nullptr_t > = nullptr>
InputIterator wordring::whatwg::to_code_point ( InputIterator  first,
InputIterator  last,
char32_t &  output 
)
inline

文字列からコードポイントを一つ読み取る。

テンプレート引数
InputIterator入力イテレータの型
引数
[in]first読み取りの開始位置を示すイテレータ。
[in]last読み取りの終端を示すイテレータ。
[out]outputユニコード・コードポイント。
戻り値
文字を読み取った分だけ前進させたイテレータを返す。 通常、返されたイテレータは、次の読み取り開始位置となる。 例として、 utf-8 文字列では、一つのコードポイントを得るために、1~4バイトを必要とする。 戻り値はfirstをその分だけ前進したものとなる。

この関数は、ライブラリ内部で使用するために作成された。 入力は、コードポイント列から作成されたクリーンな文字列の必要がある。 エラーチェックは行われない。

◆ to_string()

template<typename OutputIterator , typename std::enable_if_t< std::conjunction_v< std::is_same< typename std::iterator_traits< OutputIterator >::iterator_category, std::output_iterator_tag >, std::disjunction< std::is_same< typename std::iterator_traits< OutputIterator >::value_type, char8_t >, std::is_same< typename OutputIterator::container_type::value_type, char8_t >>>, nullptr_t > = nullptr>
void wordring::whatwg::to_string ( char32_t  ch,
OutputIterator  output 
)
inline

ユニコード・コードポイントから文字列に変換する。

テンプレート引数
OutputIterator出力イテレータの型。
引数
[in]chユニコード・コードポイント。
[out]output出力先となる出力イテレータ。

この関数はライブラリ内部での利用を意図する。 入力にエラーがある場合を考慮しない。

OutputIteratorのvalue_typeの型に応じて文字符号化が決定される。 std::back_insert_iterator<>が与えられた場合、container_type::value_typeを参照する。

  • char8_t/charの場合、utf-8。
  • char16_tの場合、utf-16。
  • char32_t/scalar_valueの場合、utf-32。

utf-8文字符号化は、処理系がchar8_tをサポートする場合char8_t、しない場合charで有効化される。

◆ encoding_cast()

template<typename Result , typename String , std::enable_if_t< std::negation_v< std::is_same< Result, String >>, std::nullptr_t > = nullptr>
Result wordring::whatwg::encoding_cast ( String const &  in)
inline

文字エンコーディングを変換する便利関数

テンプレート引数
Result変換先文字列

◆ is_forbidden_host_code_point()

bool wordring::whatwg::is_forbidden_host_code_point ( std::uint32_t  cp)
inline

◆ domain_to_ascii()

std::u32string wordring::whatwg::domain_to_ascii ( std::u32string const &  s,
bool  beStrict,
std::error_code &  ec 
)

国際化ドメイン名を ASCII ドメイン名へ変換する

引数
[in]sドメイン名
[in]beStrictラベル長の検査を行う(省略時は false )
[out]ecエラーコード

変換中、エラーに遭遇すると ec へ url_error_name::IdnaTranslationFailed をセットする。

参照
https://triple-underscore.github.io/URL-ja.html#concept-domain-to-ascii

CheckJoiners フラグに相当する、 ICU の UIDNA_CHECK_CONTEXTJ 、 UIDNA_CHECK_CONTEXTO フラグは、 カナ文字の中点のような、他の言語でも良くありがちで見間違えやすい文字を利用する攻撃を防ぐために、 そのような文字をチェックする指定のようです。

参照
https://wiki.suikawiki.org/n/CheckJoiners

VerifyDnsLength がセットされる場合、ドメイン名の長さがチェックされる。 ドメイン名の長さは、ルート・ラベルとそのドット「.」(.jp等?)を除き、1~253。 各ラベルの長さは、1 ~ 63。 ICU のエラーコードによると、長さは常にチェックされ、切り替えフラグは無いようです。

参照
https://unicode-org.github.io/icu-docs/apidoc/dev/icu4c/uidna_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da5071eb574ee6087ed7850c4e5f307ba4
https://www.unicode.org/reports/tr46/#ToASCII

◆ domain_to_unicode()

std::u32string wordring::whatwg::domain_to_unicode ( std::u32string const &  s,
std::error_code &  ec 
)

ASCII ドメイン名を国際化ドメイン名へ変換する

引数
[in]sドメイン名
[out]ecエラーコード

変換中、エラーに遭遇すると ec へ url_error_name::IdnaTranslationFailed をセットする。

参照
https://triple-underscore.github.io/URL-ja.html#concept-domain-to-ascii

◆ is_valid_domain_string()

bool wordring::whatwg::is_valid_domain_string ( std::u32string const &  s)

妥当なドメイン文字列

参照
https://url.spec.whatwg.org/#valid-domain-string

◆ is_valid_ipv4_address_string()

bool wordring::whatwg::is_valid_ipv4_address_string ( std::u32string const &  s)

妥当な IPv4 アドレス文字列

参照
https://url.spec.whatwg.org/#valid-ipv4-address-string

◆ is_valid_ipv6_address_string()

bool wordring::whatwg::is_valid_ipv6_address_string ( std::u32string const &  s)
inline

妥当な IPv6 アドレス文字列

参照
https://url.spec.whatwg.org/#valid-ipv6-address-string

◆ is_valid_host_string()

bool wordring::whatwg::is_valid_host_string ( std::u32string const &  s)
inline

妥当なホスト文字列

参照
https://url.spec.whatwg.org/#valid-host-string

◆ is_valid_opaque_host_string()

bool wordring::whatwg::is_valid_opaque_host_string ( std::u32string const &  s)
inline

妥当な不透明ホスト文字列

参照
https://url.spec.whatwg.org/#valid-opaque-host-string

◆ parse_ipv4()

std::optional< host_base > wordring::whatwg::parse_ipv4 ( std::u32string const &  in,
std::error_code &  ec 
)
inline

◆ parse_ipv6()

std::optional< host_base > wordring::whatwg::parse_ipv6 ( std::u32string const &  in,
std::error_code &  ec 
)
inline

◆ parse_opaque_host()

std::optional< host_base > wordring::whatwg::parse_opaque_host ( std::u32string const &  in,
std::error_code &  ec 
)
inline

◆ parse_host()

std::optional<host_base> wordring::whatwg::parse_host ( std::u32string const &  in,
bool  isNotSpecial,
std::error_code &  ec 
)
inline

host parser

解析に失敗した場合、 ec に url_error_name::ParseFailed を設定する。 解析に失敗した場合、空のホストを返す。

参照
https://url.spec.whatwg.org/#concept-host-parser

◆ serialize_integer()

template<typename OutputIterator >
void wordring::whatwg::serialize_integer ( char32_t  cp,
OutputIterator  out 
)
inline

◆ starts_with_percent_encoded_byte()

template<typename InputIterator >
bool wordring::whatwg::starts_with_percent_encoded_byte ( InputIterator  first,
InputIterator  last 
)
inline

[first, last) がパーセント・エンコード・バイトから始まる場合、 true を返す

参照
https://triple-underscore.github.io/URL-ja.html#percent-encoded-byte

◆ is_percent_encoded_byte()

template<typename InputIterator >
bool wordring::whatwg::is_percent_encoded_byte ( InputIterator  first,
InputIterator  last 
)
inline

[first, last) 全体がパーセント・エンコード・バイトの場合、 true を返す

参照
https://triple-underscore.github.io/URL-ja.html#percent-encoded-byte

◆ percent_encode()

template<typename OutputIterator >
void wordring::whatwg::percent_encode ( uint8_t  byte,
OutputIterator  output 
)
inline

一つのバイトをパーセント・エンコードする

参照
https://triple-underscore.github.io/URL-ja.html#percent-encode

◆ percent_decode()

template<typename InputIterator , typename OutputIterator >
void wordring::whatwg::percent_decode ( InputIterator  first,
InputIterator  last,
OutputIterator  output 
)
inline

バイト列をバイト列にパーセント・デコードする

参照
https://triple-underscore.github.io/URL-ja.html#percent-decode

◆ string_percent_decode()

template<typename InputIterator , typename OutputIterator >
void wordring::whatwg::string_percent_decode ( InputIterator  first,
InputIterator  last,
OutputIterator  output 
)
inline

文字列をバイト列にパーセント・デコードする

std::u32string → std::string

参照
https://triple-underscore.github.io/URL-ja.html#string-percent-decode

◆ is_c0_control_percent_encode_set()

bool wordring::whatwg::is_c0_control_percent_encode_set ( char32_t  cp)
inline

C0 制御文字 % エンコーディング集合

参照
https://triple-underscore.github.io/URL-ja.html#c0-control-percent-encode-set

◆ is_fragment_percent_encode_set()

bool wordring::whatwg::is_fragment_percent_encode_set ( char32_t  cp)
inline

フラグメント % エンコーディング集合

参照
https://triple-underscore.github.io/URL-ja.html#fragment-percent-encode-set

◆ is_query_percent_encode_set()

bool wordring::whatwg::is_query_percent_encode_set ( char32_t  cp)
inline

◆ is_special_query_percent_encode_set()

bool wordring::whatwg::is_special_query_percent_encode_set ( char32_t  cp)
inline

特別 QUERY % エンコーディング集合

参照
https://triple-underscore.github.io/URL-ja.html#special-query-percent-encode-set

◆ is_path_percent_encode_set()

bool wordring::whatwg::is_path_percent_encode_set ( char32_t  cp)
inline

◆ is_userinfo_percent_encode_set()

bool wordring::whatwg::is_userinfo_percent_encode_set ( char32_t  cp)
inline

@brie USERINFO % エンコーディング集合

参照
https://triple-underscore.github.io/URL-ja.html#userinfo-percent-encode-set

◆ is_component_percent_encode_set()

bool wordring::whatwg::is_component_percent_encode_set ( char32_t  cp)
inline

コンポーネント % エンコーディング集合

参照
https://triple-underscore.github.io/URL-ja.html#component-percent-encode-set

◆ application_x_www_form_urlencoded_percent_encode_set()

bool wordring::whatwg::application_x_www_form_urlencoded_percent_encode_set ( char32_t  cp)
inline

◆ percent_encode_after_encoding()

template<typename PercentEncodeSet >
std::string wordring::whatwg::percent_encode_after_encoding ( encoding_name  name,
std::u32string const &  in,
PercentEncodeSet  set,
bool  spaceAsPlus = false 
)
inline

文字列をエンコーディング後、 % エンコーディングする

参照
https://triple-underscore.github.io/URL-ja.html#string-percent-encode-after-encoding

◆ utf8_percent_encode() [1/2]

template<typename PercentEncodeSet >
std::string wordring::whatwg::utf8_percent_encode ( char32_t  cp,
PercentEncodeSet  set 
)
inline

コードポイントを UTF-8 パーセント・エンコードする

参照
https://url.spec.whatwg.org/#utf-8-percent-encode

◆ utf8_percent_encode() [2/2]

template<typename PercentEncodeSet >
std::string wordring::whatwg::utf8_percent_encode ( std::u32string const &  s,
PercentEncodeSet  set 
)
inline

文字列を UTF-8 パーセント・エンコードする

参照
https://url.spec.whatwg.org/#utf-8-percent-encode