encodejava
① 如何用java实现URLEncode
Java使用查表法实现一下urlEncode(RFC1738):
public final static String[] encodeTable = new String[2^8];
static{
for(int i=0;i<256;i++)
{
if(i>='0' && i<='9' || i>='a'&&i<='z' || i>='A' && i<='Z' ||| i=='-' || i=='_' || i=='.')
{
encodeTable[i] = (char)i + "";
}else
{
encodeTable[i] = "%" + String.format("%02x",i).toUpperCase();
}
}
}
public String urlEncode(final String sourceStr)
{
final StringBuilder sb = new StringBuilder();
for(int i=0;i<sourceStr.length;i++)
{
sb.append(encodeTable[sourceStr.charAt(i) && 0xFF]);
}
}
② java网页项目中 为什么会用到htmlEncode方法去转换html元素为了防止什么
js里没有这个函数,asp或asp.net里用htmlEncode方法将 Html 源文件中不允许出现的字符进行编码,通常是编码以下字符"<"、">"、"&" 等。
你可以把这些特殊字符当作html的关键字,而html文本里是不允许出现这些关键字的,所以需要编码,再解码的形式在html页面输出。
------------------------------------------------------------------------------------
Html的Encode和Decode在服务器端是很容易实现的,就拿ASP.net来说,调用现成的函数System.Web.HttpContext.Server.HtmlEncode或HtmlDecode就能简单了事。 但随着Ajax的发展,人们越来越重视javascript或vbscript的编程,这就使得大家不得不用这些脚本语言解决一些曾经不长解决的问题,Html的Encode / Decode就是一个这样的例子,javascript好像并没有现成的函数,网上的相关代码也很少,主要思想大都是用正则表达式来替换(replace)"<"、">"、"&"等符号,其实有一个很巧妙的办法能解决这个问题,请看下面两个函数<script type="text/javascript">
function htmlEncode (str){
var div = document.createElement("div");
var text = document.createTextNode(str);
div.appendChild(text);
return div.innerHTML;
}
function htmlDecode (str){
var div = document.createElement("div");
div.innerHTML = str;
return div.innerHTML;
}
</script>
功能同函数名,htmlEncode是让document.createTextNode把html代码转换成文本了,而htmlDecode是通过设置div的innerHTML使得浏览器对文本(编码后的html)做了代码自动调整,还原成了html,从而实现了编码/解码功能。
③ 如何用Java实现URLEncode
无需用抄Java实现URLEncode,jdk有已经实现了。
用法如下:
String urlStr = java.net.URLEncoder.encode("hello,网络", "GBK");
输出urlStr:%C8%CE%BA%F0%B2%F0%B0%A1
String keyWord = java.net.URLDecoder.decode("%C8%CE%BA%F0%B2%F0%B0%A1
", "GBK");
输出keyWord:hello,网络
④ java对String进行json编码 实现类似与PHP中json_encode 方法的功能
一,json_encode作用:
json_encode — 对变量进行 JSON 编码。
说明:string json_encode ($value ),返回 value 值的 JSON 形式。
参数:待编码的 value ,除了resource 类型之外,可以为任何数据类型
该函数只能接受 UTF-8 编码的数据(译注:指字符/字符串类型的数据)
返回值:编码成功则返回一个以 JSON 形式表示的 string 。
二,客户端用java语言解码:
方法一:
public String unescapeUnicode(String str){
StringBuffer b=new StringBuffer();
Matcher m = Pattern.compile("\\\\u([0-9a-fA-F]{4})").matcher(str);
while(m.find())
b.append((char)Integer.parseInt(m.group(1),16));
return b.toString();
}
方法二:
直接使用unescapeUnicode()方法解码就可以了。
使用 json_simple.jar 包解析
下载地址:http://code.google.com/p/json-simple/downloads/list
JSON.simple是一个简单的Java类库,用于解析和生成JSON文本。不依赖于其它类库,性能高。
Object obj=JSONValue.parse(jsonStr);
return obj.toString();
⑤ java如何把string转为utf-8
java不同编码之间进行转换,都需要使用unicode作为中转。
String str = "任意字符串";
str = new String(str.getBytes("gbk"),"utf-8");
备注说明:
str.getBytes("UTF-8"); 意思是以-8的编码取得字节
new String(XXX,"UTF-8"); 意思是以UTF-8的编码生成字符串
举例:
public static String getUTF8XMLString(String xml) {
// A StringBuffer Object
StringBuffer sb = new StringBuffer();
sb.append(xml);
String xmString = "";
String xmlUTF8="";
try {
xmString = new String(sb.toString().getBytes("UTF-8"));
xmlUTF8 = URLEncoder.encode(xmString, "UTF-8");
System.out.println("utf-8 编码:" + xmlUTF8) ;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// return to String Formed
return xmlUTF8;
(5)encodejava扩展阅读:
UTF-8编码规则:
如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。
实际表示ASCII字符的UNICODE字符,将会编码成1个字节,并且UTF-8表示与ASCII字符表示是一样的。所有其他的UNICODE字符转化成UTF-8将需要至少2个字节。每个字节由一个换码序列开始。第一个字节由唯一的换码序列,由n位连续的1加一位0组成,首字节连续的1的个数表示字符编码所需的字节数。
Unicode转换为UTF-8时,可以将Unicode二进制从低位往高位取出二进制数字,每次取6位,如上述的二进制就可以分别取出为如下示例所示的格式,前面按格式填补,不足8位用0填补。
⑥ java 中如何调用encodeuri
String t=URLEncoder.encode(内容, 字符编码);//字符编码和文档编码一致
String t=URLEncoder.encode(txt, "GBK");//使用常见的gbk编码
你在页面上写的话在使用前要导包或者直接写java.net.URLEncoder.encode(txt, "GBK");
⑦ Ext encode()转换后,如何用java进行中文解码
<!DOCTYPEHTML>
<html>
<head>
<title>yugi</title>
<metacharset=UTF-8/>
<styletype="text/css">
</style>
<scripttype="text/javascript">
functionascii2native(val)
{
varasciicode=val.split(/u/);
varnativeValue=asciicode[0];
for(vari=1;i<asciicode.length;i++)
{
=asciicode[i];
nativeValue+=String.fromCharCode(parseInt("0x"+code.substring(0,4)));
if(code.length>4)
{
nativeValue+=code.substring(4,code.length);
}
}
returnnativeValue;
}
varstr="{"ampm":"u65f6u95f4","day1":2,"day2":0,"day3":0,"day4":0,"day5":0,"day6":0,"day7":0}";
str=ascii2native(str);
console.log(str);
</script>
</head>
<body>
</body>
</html>