前端之家收集整理的这篇文章主要介绍了
oracle 利用url encode decode转换字符编码,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
oracle数据库环境的字符集是GBK的,也就是每个中文占用2个字节的长度,可以通过utl_url把相应的字符进行编码解码。
utl_url.escape可以对字符串进行URLEncode,utl_url.escape定义如下:
FUNCTION escape(url IN VARCHAR2 CHARACTER SET ANY_CS,escape_reserved_chars IN BOOLEAN DEFAULT FALSE,url_charset IN VARCHAR2 DEFAULT utl_http.get_body_charset)
RETURN VARCHAR2 CHARACTER SET url%CHARSET;
begin
dbms_output.put_line(utl_url.escape('中国http://www.baidu.com/参数/=+/',true,'GB2312'));
dbms_output.put_line(utl_url.escape('中国http://www.baidu.com/参数/=+/',false,'UTF8'));
dbms_output.put_line(utl_url.escape('中国http://www.baidu.com/参数/=+/','UTF8'));
end;
@H_502_40@%D6@H_502_40@%D0@H_502_40@%B9@H_502_40@%FAhttp@H_502_40@%3A@H_502_40@%2F@H_502_40@%2Fwww.baidu.com@H_502_40@%2F@H_502_40@%B2@H_502_40@%CE@H_502_40@%CA@H_502_40@%FD@H_502_40@%2F@H_502_40@%3D@H_502_40@%2B@H_502_40@%2F
@H_502_40@%D6@H_502_40@%D0@H_502_40@%B9@H_502_40@%FAhttp:
@H_502_40@%E4@H_502_40@%B8@H_502_40@%AD@H_502_40@%E5@H_502_40@%9B@H_502_40@%BDhttp@H_502_40@%3A@H_502_40@%2F@H_502_40@%2Fwww.baidu.com@H_502_40@%2F@H_502_40@%E5@H_502_40@%8F@H_502_40@%82@H_502_40@%E6@H_502_40@%95@H_502_40@%B0@H_502_40@%2F@H_502_40@%3D@H_502_40@%2B@H_502_40@%2F
@H_502_40@%E4@H_502_40@%B8@H_502_40@%AD@H_502_40@%E5@H_502_40@%9B@H_502_40@%BDhttp:
utl_url.unescape可以对字符串进行URLDecode,utl_url.unescape定义:
FUNCTION unescape(url IN VARCHAR2 CHARACTER SET ANY_CS,url_charset IN VARCHAR2 DEFAULT utl_http.get_body_charset)
RETURN VARCHAR2 CHARACTER SET url%CHARSET;
begin
dbms_output.put_line( utl_url.unescape('http%3A%2F%2Fwww.baidu.com%2F%E5%8F%82%E6%95%B0%2F%3D%2B%2F','UTF8'));
end;