ログインしていません。このフォーラムはログインユーザのみに投稿が許可されています。投稿する場合はログインしてください。
ダウンロード
Magazine
開発
アカウント
ダウンロード
Magazine
開発
ログイン
アカウント/パスワードを忘れた
アカウント作成
言語
ヘルプ
言語
ヘルプ
×
ログイン
ログイン名
パスワード
×
アカウント/パスワードを忘れた
日本語の翻訳状況
カテゴリ:
ソフトウェア
人物
PersonalForge
Magazine
Wiki
検索
OSDN
>
ソフトウェアを探す
>
システム
>
ネットワーク
>
CLX C++ Libraries
>
フォーラム
>
開発者
>
uri::encode 関連の問題
CLX C++ Libraries
概要
プロジェクト概要
開発ダッシュボード
Webページ
開発メンバー
画像ギャラリー
公開フィード一覧
活動
統計情報
活動履歴
ダウンロード
リリース一覧
統計
ソースコード
コードリポジトリリスト
Subversion
リポジトリ閲覧
チケット
チケット一覧
マイルストーン一覧
チケットの種類一覧
コンポーネント一覧
よく使われるチケット一覧のリスト/RSS
新規チケット登録
コミュニケーション
フォーラム一覧
ヘルプ (2)
公開討議 (19)
開発者 (24)
ニュース
フォーラム:
開発者
(スレッド #22263)
話題(スレッド)一覧に戻る
RSS
uri::encode 関連の問題 (2009-04-06 18:31 by
cielquis
#43009)
チケットに引用
uri::encode に残っている問題.
uri::encode ではワード単位 (char, or wchar_t) で処理を行っているが,wchar_t を用いたときに問題が発生する.uri::encode は,予約文字(英数字および一部の記号)以外は % に続いて 2 文字の 16 進文字列で表現する事となっているが,現在の処理では wchar_t を用いた場合,2 文字以上(0xFF 以上の場合だと 4 文字)の 16 進文字列で表現されてしまう.
wchar_t の uri::encode では,ワード (wchar_t) 単位の処理ではなくバイト単位の処理にしなければならない.また,これに伴って uri::decode も適切に複数の 16 進文字列を繋げる必要がある.
RE: uri::encode 関連の問題 (2009-04-07 12:23 by
cielquis
#43032)
チケットに引用
uri::encode の方は修正できるが,uri::decode の修正が難しい(文字コードを判別する必要がある,など)ので,当面は wchar_t 対応は行わない事とする.これに伴って,uri::encode/uri::decode の定義を以下にしておく.
変更前:
template <class Ch, class Tr>
inline std::basic_string<Ch, Tr> encode(
const std::basic_string<Ch, Tr>& src);
template <class Ch, class Tr>
inline std::basic_string<Ch, Tr> decode(
const std::basic_string<Ch, Tr>& src);
変更後:
inline std::basic_string<char> encode(
const std::basic_string<char>& src);
inline std::basic_string<char> decode(
const std::basic_string<char>& src);
#43009
への返信