PHP / JavaScript / ASP / PowerShell / python / Framework(バージョン別) : 処理別の urlencode の結果の違い

  00 〜 7F の記号の変換結果



%80 以降は全て同様に % エンコードされると思いますので省略しています。元々、Twitter の OAuth 用のパーセントエンコーディングの詳細を知って比較してみたくなりました

この中では、PHP 5.3.x の rawurlencode が OAuth で使われる rfc3986
のパーセントエンコーディングのようです

1) PHP : urlencode
2) PHP : rawurlencode : 5.2.x
3) PHP : rawurlencode : 5.3.x
4) JavaScript : encodeURI
5) JavaScript : encodeURIComponent
6) ASP : Server.URLEncode ( Server.URLEncode(chr(I))で変換できない文字があります )
7) PowerShell : [System.Web.HttpUtility]::UrlEncode
8) python 2.6.2

9) js2 と同じ : VS2010 Uri.EscapeDataString
10) php3 と同じ : VS2012 Uri.EscapeDataString
11) ps の ' が %27 : VS2010 HttpUtility.UrlEncode
    php1 php2 php3 js1 js2 asp ps py fw4 fw4.5 fw
    1 2 3 4 5 6 7 8 9 10 11
0   %00 %00 %00 %00 %00   %00 %00 %00 %00 %00
32   + %20 %20 %20 %20 + + %20 %20 %20 +
33 【!】 %21 %21 %21 ! ! %21 ! %21 ! %21 !
34 【"】 %22 %22 %22 %22 %22 %22 %22 %22 %22 %22 %22
35 【#】 %23 %23 %23 # %23 %23 %23 %23 %23 %23 %23
36 【$】 %24 %24 %24 $ %24 %24 %24 %24 %24 %24 %24
37 【%】 %25 %25 %25 %25 %25 %25 %25 %25 %25 %25 %25
38 【&】 %26 %26 %26 & %26 %26 %26 %26 %26 %26 %26
39 【'】 %27 %27 %27 ' ' %27 ' %27 ' %27 %27
40 【(】 %28 %28 %28 ( ( %28 ( %28 ( %28 (
41 【)】 %29 %29 %29 ) ) %29 ) %29 ) %29 )
42 【*】 %2A %2A %2A * * %2A * %2A * %2A *
43 【+】 %2B %2B %2B + %2B %2B %2B %2B %2B %2B %2B
44 【,】 %2C %2C %2C , %2C %2C %2C %2C %2C %2C %2C
45 【-】 - - - - - %2D - - - - -
46 【.】 . . . . . %2E . . . . .
47 【/】 %2F %2F %2F / %2F %2F %2F / %2F %2F %2F
ここは、0から9の数字で変換されません
58 【:】 %3A %3A %3A : %3A %3A %3A %3A %3A %3A %3A
59 【;】 %3B %3B %3B ; %3B %3B %3B %3B %3B %3B %3B
60 【<】 %3C %3C %3C %3C %3C %3C %3C %3C %3C %3C %3C
61 【=】 %3D %3D %3D = %3D %3D %3D %3D %3D %3D %3D
62 【>】 %3E %3E %3E %3E %3E %3E %3E %3E %3E %3E %3E
63 【?】 %3F %3F %3F ? %3F %3F %3F %3F %3F %3F %3F
64 【@】 %40 %40 %40 @ %40 %40 %40 %40 %40 %40 %40
ここは、AからZのアルファベットで変換されません
91 【[】 %5B %5B %5B %5B %5B %5B %5B %5B %5B %5B %5B
92 【\】 %5C %5C %5C %5C %5C %5C %5C %5C %5C %5C %5C
93 【]】 %5D %5D %5D %5D %5D %5D %5D %5D %5D %5D %5D
94 【^】 %5E %5E %5E %5E %5E %5E %5E %5E %5E %5E %5E
95 【_】 _ _ _ _ _ %5F _ _ _ _ _
96 【`】 %60 %60 %60 %60 %60 %60 %60 %60 %60 %60 %60
ここは、aからzのアルファベット(小文字)で変換されません
123 【{】 %7B %7B %7B %7B %7B %7B %7B %7B %7B %7B %7B
124 【|】 %7C %7C %7C %7C %7C %7C %7C %7C %7C %7C %7C
125 【}】 %7D %7D %7D %7D %7D %7D %7D %7D %7D %7D %7D
126 【~】 %7E %7E ~ ~ ~ %7E %7E %7E ~ ~ %7E
127   %7F %7F %7F %7F %7F %7F %7F %7F %7F %7F %7F



  サンプルコード



PowerShell
  
add-type -AssemblyName Microsoft.VisualBasic

for ( $i = 0; $i -le 127; $i++ ) {
	$data = ([Microsoft.VisualBasic.Strings]::Chr($i)).ToString()
	$data = [System.Web.HttpUtility]::UrlEncode( $data )
	$data.toUpper()
}
  


python
  
import urllib

for i in range(0, 127):
	print urllib.quote(chr(i))
  




  sha1 で比較した結果です

ce00fb21597786d581dff8b1b445b47f4fec5696
10a6afe986df171d44067a3c7e2e5825002ce7cd
12219aa1000d4f7487b37582548e9f03abfdad16
08157655e5057103f3d2de34934f586710876d9d
727640bac086c2ca8fc4591be2dbadfda333cb4d
3f2983311595524f023920f26ea007fac736405f
8d426fb4b79825d9236f471d36dc696789ddc309
d67c0d10e06911682ed56784b799436d3809478b

<?

print sha1( "+%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F%3A%3B%3C%3D%3E%3F%40%5B%5C%5D%5E_%60%7B%7C%7D%7E%7F" ) ."\n";
print sha1( "%20%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F%3A%3B%3C%3D%3E%3F%40%5B%5C%5D%5E_%60%7B%7C%7D%7E%7F" ) ."\n";
print sha1( "%20%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F%3A%3B%3C%3D%3E%3F%40%5B%5C%5D%5E_%60%7B%7C%7D~%7F" ) ."\n";
print sha1( "%20!%22#$%25&'()*+,-./:;%3C=%3E?@%5B%5C%5D%5E_%60%7B%7C%7D~%7F" ) ."\n";
print sha1( "%20!%22%23%24%25%26'()*%2B%2C-.%2F%3A%3B%3C%3D%3E%3F%40%5B%5C%5D%5E_%60%7B%7C%7D~%7F" ) ."\n";
print sha1( "+%21%22%23%24%25%26%27%28%29%2A%2B%2C%2D%2E%2F%3A%3B%3C%3D%3E%3F%40%5B%5C%5D%5E%5F%60%7B%7C%7D%7E%7F" ) ."\n";
print sha1( "+!%22%23%24%25%26'()*%2B%2C-.%2F%3A%3B%3C%3D%3E%3F%40%5B%5C%5D%5E_%60%7B%7C%7D%7E%7F" ) ."\n";
print sha1( "%20%21%22%23%24%25%26%27%28%29%2A%2B%2C-./%3A%3B%3C%3D%3E%3F%40%5B%5C%5D%5E_%60%7B%7C%7D%7E%7F" ) ."\n";

?>
















   SQLの窓    create:2010/05/21  update:2015/11/02   管理者用(要ログイン)





フリーフォントWEBサービス

SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ