URL エンコーディングの要件と考慮事項
PTC RV&SClient の URL を作成する場合は、コマンドオプションの値だけをエンコーディングする必要があります。URL 全体をエンコーディングしないでください。
PTC RV&Sでは、すべての URL データを UTF-8 との間で確実に変換できるよう、受信したすべてのPTC RV&S Client URL が RFC 1738 に従ってエンコーディングされていることを前提としています。WWW コンソーシアムの勧告に従い、エンコーディングとデコーディングでは、互換性を最大限に高めるために UTF-8 エンコーディング方式が必ず使用されます。たとえば、空白文字は%20 としてエンコーディングされます。詳細については、http://docs.oracle.com/javase/8/docs/api/java/net/URLEncoder.htmlを参照してください。
無効な文字の URL エンコーディングは、パーセント (%) 記号の後に、その文字に対する ISO-Latin コード ポイントの 2 桁の 16 進数表現が続く形式で表されます。
以下に、さまざまなエンコーディングオプションを使用した場合の PTC RV&SClient URL の例を示します。
integrity://localhost:9001/im/viewissue?selection=12345&asof=%222012-01-01%2014%3a01%3a00%20z%22
ここでは、2012-01-01 12:01:00 z がエンコーディングされています。
integrity://localhost:9001/si/viewproject?project=%2FTestProject%2Fproject.pj
ここでは、/TestProject/project.pj がエンコーディングされています。
integrity://localhost:9001/im/viewissue?selection=12345&asof=jwWiki%20%e3%82%a2%e3%83%bc%e3%83%86%e3%82%a3%e3
integrity://localhost:9001/extended-web-ui/%2Fitems%3Fquery%3DA%2A%21-_ がエンコーディングされます。
integrity://localhost:9001/extended-web-ui/%2Fitems%3Fquery%3Dquick%20query がエンコーディングされます。
%82%af%e3%83%ab
ここでは、asof=jwWikiアーティクルがエンコーディングされています。
PTC RV&SClient の URL を生成するカスタムのトリガースクリプトまたはカスタムのアクションを作成する場合は、java.net.Encoder などの標準的なライブラリを使用して、URL でコマンドオプションの値をエンコーディングすることをお勧めします。たとえば、Java エンコーダークラスを呼び出してエンコーディングできます。
java.net.URLEncoder.encode(some_URL, "UTF-8")
このエンコーダークラスは RFC 1738 (URL 規格) に準拠しているため、PTC RV&SClient の起動時に、PTC RV&S Client の URL が正しくデコーディングされます。詳細については、http://www.rfc-editor.org/rfc/rfc1738.txt を参照してください。
トリガースクリプトファイル changePackageNotification.js は、この Java クラスを使用して、PTC RV&S Client URL のコマンドオプションをエンコーディングします。以下に例を示します。
/**
* Return a URL-encoded string version of the argument passed in.
*/
function urlEncode(arg)
{
try {
return java.net.URLEncoder.encode(arg,"UTF-8");
} catch (err) {
// Fall-through
}
// If UTF-8 failed, just use the default encoding.
return java.net.URLEncoder.encode(arg);
}
次の表に、PTC RV&SClient の URL に含まれるコマンドオプションの値をエンコーディングする際の要件と考慮事項を示します。
文字タイプ
コーディングの要件/考慮事項
ASCII 制御文字
00 ~ 1F および 7F の範囲内のすべての文字をエンコーディングする必要があります。
予約文字
次の特殊文字が予約されています。
ドル記号 ($) は %24 にエンコーディング
アンパサンド (&) は %26 にエンコーディング
プラス記号 (+) は %2B にエンコーディング
カンマ (,) は %2C にエンコーディング
スラッシュ (/) は %2F にエンコーディング
コロン (:) は %3A にエンコーディング
セミコロン (;) は %3B にエンコーディング
等号 (=) は %3D にエンコーディング
疑問符 (?) は %3F にエンコーディング
アット マーク (@) は %40 にエンコーディング
アスタリスク (*): %2A にエンコーディングされます
感嘆符 (! ): %21 にエンコーディングされます
安全でない文字
一部の特殊文字は、URL で使用された場合に誤って解釈される可能性があります。たとえば、互換性がない文字または信頼性の低い文字として誤って解釈されることがあります。PTC では、以下の文字をエンコーディングすることをお勧めしています。
空白文字 ( ) は %20 にエンコーディング (特に複数の空白文字が続く場合)
引用符 (“”) は %22 にエンコーディング
小なり記号 (\<) は %3C にエンコーディング
大なり記号 (\>) は %3E にエンコーディング
番号記号 (#) は %23 にエンコーディング
パーセント記号 (%) は %25 にエンコーディング
左中括弧 ({) は %7B にエンコーディング
右中括弧 (}) は %7D にエンコーディング
縦棒 (|) は %7C にエンコーディング
バックスラッシュ (\) は %5C にエンコーディング
キャレット (^) は %5E にエンコーディング
チルダ (~) は %7E にエンコーディング
左角括弧 ([) は %5B にエンコーディング
右角括弧 (]) は %5D にエンコーディング
抑音アクセント (`) は %60 にエンコーディング
サポートされている特殊文字
以下の特殊文字が許可されています。エンコーディングは不要です。
ハイフン (-): - にエンコーディングされます
アンダースコア (_): _ にエンコーディングされます
非 ASCII 文字
非 ASCII 文字はすべてエンコーディングする必要があります。これには、80 ~ FF の 16 進数値から成る ISO-Latin セットの上半分がすべて含まれます。
Unicode 文字
Unicode 文字はすべてエンコーディングする必要があります。これには、FF より上の文字がすべて含まれます。
これは役に立ちましたか?