URL Encoding, specifically Percent-encoding, is one of common encodings that you may use in arbitorary programming languages.
Let me encode a text into URL Encoding, which includes UTF-8 Japanese characters.
JavaScript (node.js)
Use encodeURIComponent
.
var sys = require('sys');
sys.puts(encodeURIComponent('abc あいう-#!@'));
result:
abc%20%E3%81%82%E3%81%84%E3%81%86-%23!%40
Note that escape
and encodeURI
aren't proper for URI encoding.
sys.puts(escape('abc あいう-#!@'));
//=> abc%20%u3042%u3044%u3046-%23%21@
sys.puts(encodeURI('abc あいう-#!@'));
//=> abc%20%E3%81%82%E3%81%84%E3%81%86-#!@
sys.puts(encodeURIComponent('abc あいう-#!@'));
//=> abc%20%E3%81%82%E3%81%84%E3%81%86-%23!%40
(Thanks @javascripter!)
Ruby
Use ERB::Util.url_encode
.
# coding: utf-8
require 'erb'
puts ERB::Util.url_encode 'abc あいう-#!@'
result:
abc%20%E3%81%82%E3%81%84%E3%81%86-%23%21%40
This result is exactly same to JavaScript's except for "!".
Note that URI.encode
or URI.encode_www_form_component
aren't proper.
require 'uri'
puts URI.encode 'abc あいう-#!@'
#=> abc%20%E3%81%82%E3%81%84%E3%81%86-%23!@
puts URI.encode_www_form_component 'abc あいう-#!@'
#=> abc+%E3%81%82%E3%81%84%E3%81%86-%23%21%40
Python
Use urllib.quote
.
# coding: utf-8
import urllib
print urllib.quote('abc あいう-#!@')
result:
abc%20%E3%81%82%E3%81%84%E3%81%86-%23%21%40
(Thanks @raa0121!)
Vim script
Use Vital.Web.Http.encodeURI
.
let H = vital#of('vital').import('Web.Http')
echo H.encodeURI('abc あいう-#!@')
result:
abc%20%E3%81%82%E3%81%84%E3%81%86-%23%21%40
Haskell
Use Network.HTTP.urlEncode
. But...
import Network.HTTP (urlEncode)
main = putStrLn $ urlEncode "abc あいう-#!@"
result:
abc%20%30%42%30%44%30%46-%23%21%40
oh...
No comments:
Post a Comment