以前经常来问delphi问题,现在问个Java问题不知道有人知道否? ( 积分: 100 )

  • 主题发起人 主题发起人 apple058
  • 开始时间 开始时间
A

apple058

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大哥:
请问:
URLEncoder.encode()方法,但是在windows下可以,再sun的unix就不行了!怎么回事?
具体情况是
<a href=&quot;test.jsp?name='<%=URLEncoder.encode(&quot;中国&quot;)%>'&quot;>
如果程序在windows中
URLEncoder.encode(&quot;中国&quot;) 的结果是 %D6%D0%B9%FA
但是在 Unix 的结果是 %3F%3F%3F%3F
在Unix下又试了
URLEncoder.encode(&quot;中国&quot;,&quot;gb2312&quot;) 值为 %3F%3F%3F%3F
URLEncoder.encode(&quot;中国&quot;,&quot;iso-8859-1&quot;) %3F%3F%3F%3F
URLEncoder.encode(&quot;中国&quot;,&quot;gbk&quot;) %3F%3F%3F%3F
URLEncoder.encode(&quot;中国&quot;,&quot;utf-8&quot;) %EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD
请问:我怎样才能在Unix下面才能正常得到 %D6%D0%B9%FA 值? 多谢了!
 
各位大哥:
请问:
URLEncoder.encode()方法,但是在windows下可以,再sun的unix就不行了!怎么回事?
具体情况是
<a href=&quot;test.jsp?name='<%=URLEncoder.encode(&quot;中国&quot;)%>'&quot;>
如果程序在windows中
URLEncoder.encode(&quot;中国&quot;) 的结果是 %D6%D0%B9%FA
但是在 Unix 的结果是 %3F%3F%3F%3F
在Unix下又试了
URLEncoder.encode(&quot;中国&quot;,&quot;gb2312&quot;) 值为 %3F%3F%3F%3F
URLEncoder.encode(&quot;中国&quot;,&quot;iso-8859-1&quot;) %3F%3F%3F%3F
URLEncoder.encode(&quot;中国&quot;,&quot;gbk&quot;) %3F%3F%3F%3F
URLEncoder.encode(&quot;中国&quot;,&quot;utf-8&quot;) %EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD
请问:我怎样才能在Unix下面才能正常得到 %D6%D0%B9%FA 值? 多谢了!
 
public static String toUtf8String(String s) {
StringBuffer sb = new StringBuffer();
for (int i = 0;
i < s.length();
i++) {
char c = s.charAt(i);
if (c >= 0 &amp;&amp;
c <= 255) {
sb.append(&quot;%&quot;
+ c);
} else
{
byte[] b;
try {
b = Character.toString(c).getBytes(&quot;utf-8&quot;);
} catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0;
j < b.length;
j++) {
int k = b[j];
if (k < 0)
k += 256;
sb.append(&quot;%&quot;
+ Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}
 
后退
顶部