1.解决ajax提交中文、URL中文参数传递后的乱码问题的解决办法
2.JAVA 中URL链接中文参数乱码的处理方法
3.JAVA URL中带有中文时的处理
今天我们所说的中文,没有在url后面的参数中,如果中文在url中间,那如果我要处理,该怎么办呢?
呵呵,不着急,我们照样可以处理:跟我来,照着做就是了
Java代码如下:
package com.gjob.common;
public class URLtoUTF8 {
//转换为%E4%BD%A0形式
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 && c <= 255) {
sb.append(c);
} else {
byte[] b;
try {
b = String.valueOf(c).getBytes("utf-8");
} 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("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}
//将%E4%BD%A0转换为汉字
public static String unescape(String s) {
StringBuffer sbuf = new StringBuffer();
int l = s.length();
int ch = -1;
int b, sumb = 0;
for (int i = 0, more = -1; i < l; i++) {
/* Get next byte b from URL segment s */
switch (ch = s.charAt(i)) {
case '%':
ch = s.charAt(++i);
int hb = (Character.isDigit((char) ch) ? ch - '0'
: 10 + Character.toLowerCase((char) ch) - 'a') & 0xF;
ch = s.charAt(++i);
int lb = (Character.isDigit((char) ch) ? ch - '0'
: 10 + Character.toLowerCase((char) ch) - 'a') & 0xF;
b = (hb << 4) | lb;
break;
case '+':
b = ' ';
break;
default:
b = ch;
}
/* Decode byte b as UTF-8, sumb collects incomplete chars */
if ((b & 0xc0) == 0x80) { // 10xxxxxx (continuation byte)
sumb = (sumb << 6) | (b & 0x3f); // Add 6 bits to sumb
if (--more == 0)
sbuf.append((char) sumb); // Add char to sbuf
} else if ((b & 0x80) == 0x00) { // 0xxxxxxx (yields 7 bits)
sbuf.append((char) b); // Store in sbuf
} else if ((b & 0xe0) == 0xc0) { // 110xxxxx (yields 5 bits)
sumb = b & 0x1f;
more = 1; // Expect 1 more byte
} else if ((b & 0xf0) == 0xe0) { // 1110xxxx (yields 4 bits)
sumb = b & 0x0f;
more = 2; // Expect 2 more bytes
} else if ((b & 0xf8) == 0xf0) { // 11110xxx (yields 3 bits)
sumb = b & 0x07;
more = 3; // Expect 3 more bytes
} else if ((b & 0xfc) == 0xf8) { // 111110xx (yields 2 bits)
sumb = b & 0x03;
more = 4; // Expect 4 more bytes
} else /*if ((b & 0xfe) == 0xfc)*/{ // 1111110x (yields 1 bit)
sumb = b & 0x01;
more = 5; // Expect 5 more bytes
}
/* We don't test if the UTF-8 encoding is well-formed */
}
return sbuf.toString();
}
public static void main(String[] args){
System.out.println(URLtoUTF8.toUtf8String("你"));
System.out.println(URLtoUTF8.unescape("%E4%BD%A0%20%E5%A5%BD"));
}
}
############
运行结果:
%E4%BD%A0
你 好
http://topic.csdn.net/u/20090722/20/5215fa11-3bfe-40b0-995b-2d476974dff3.html
分享到:
相关推荐
在资源中提到的“GBK编码转换为URL编码”和“UTF-8编码转换为URL编码”,URL编码(也称为percent-encoding)是URL的一部分,用于包含非ASCII字符或者URL中不能直接使用的特殊字符。在URL中,某些字符如空格、中文等...
在这个“Url编码转换程序”中,包含了两种重要的编码方式:GB2312和UTF-8。GB2312是中国大陆广泛使用的简体中文字符集,它包含6763个汉字,主要用于早期的计算机系统。而UTF-8是一种变长的Unicode编码,它可以表示...
URL中文乱码问题主要是由于URL编码和解码过程中的不一致导致的。下面将详细介绍如何解决这个问题,并探讨几种常用的方法。 首先,我们需要了解URL编码的基本原理。URL(统一资源定位符)不能包含某些特殊字符,如...
《中文编码转换器详解:Big5、GBK、Unicode与UTF8的互换之道》 在计算机世界里,字符编码是沟通人类语言与机器之间的重要桥梁。本文将详细讲解标题所提及的“中文 Big5/GBK/Unicode/UTF8 内码转换器”这一工具,...
搜集了网上的VBA函数,在excel中通过函数将汉字转为两种类型的URL编码,例如将 天空 二字转化为GB2312的“%CC%EC%BF%D5”或者是UTF-8的 “%E5%A4%A9%E7%A9%BA”。方便用于连接转换。VBA相关函数均来自网上,做了小小...
总之,易语言URL编码转换模块是易语言环境中一个重要的辅助工具,它为处理URL编码问题提供了便利,特别是对于那些需要处理中文字符的开发者来说,能够有效地解决字符编码的转换问题,提升程序的健壮性。通过学习和...
PowerBuilder9.0开发环境下,可以把UTF-8的编码转换为Unicode的编码格式,在pb9.0环境下测试通过。
总之,汉字编码转换器是处理中文字符编码问题的有效工具,能够帮助用户解决因编码不匹配而产生的各种问题,确保信息的准确传递和显示。在日常的编程、网页制作或数据处理中,它都扮演着不可或缺的角色。
但需要注意的是,在处理URL时,由于URL中可能包含特殊字符,可能需要进行URL编码(如使用`Uri.EscapeDataString()`)和解码(如使用`Uri.UnescapeDataString()`)。 在实际开发中,我们可能会遇到各种各样的编码...
4. 软件应用:了解和使用专门的编码转换工具,如"得心应手UTF-8编码转换器",来解决实际工作中的编码问题。 5.URL链接:了解.url文件的用途,以及如何通过它访问相关的网络资源。 掌握这些知识对于处理多语言内容的...
总之,"url编码转换.rar"提供的工具解决了在网络通信中常见的编码问题,特别是涉及ANSI和UTF-8编码间的转换。通过"code.exe"这个程序,用户可以方便地进行URL编码转换,确保URL在各种环境下的正确性和兼容性。对于...
1. UTF-8编码:在处理中文字符时,通常先将其转换为UTF-8编码,然后再进行URL编码。因为UTF-8是一种变长的字符编码方式,可以表示Unicode字符集中的所有字符。 2. 使用`java.net.URLEncoder.encode()`方法:在...
本文将深入探讨“常用中文编码显示及转换”的主题,包括汉字的页面编码、URL编码,以及在GBK和UTF-8之间的转换方法。同时,我们还将分析提供的源码文件,以了解其实现细节。 首先,我们要明白汉字的页面编码。页面...
综上所述,易语言编码转换模块是一个用于处理文本编码问题的工具,特别是将不同编码格式的数据转换为GB2312,以适应中国早期的计算机系统和应用。这个模块对于处理老式系统中的数据,或者需要与GB2312环境交互的现代...
"UTF-8 编码转换详解" 1. UTF-8 编码的重要性:在 WEB 开发中,UTF-8 编码扮演着非常重要的角色,特别是在传递中文时,必须经过编码的动作,否则可能会出现乱码的情况。 2. 使用 URLEncoder.encode() 方法:在 ...
在Java编程语言中,`URLDecoder`和`URLEncoder`是两个非常重要的工具类,主要用于处理URL中的中文字符和其他特殊字符。这两个类位于`java.net`包下,可以帮助开发者进行字符串编码和解码,确保数据在网络传输过程中...
总的来说,"豆葵GB-BIG5-UTF-8 文件编码批量转换工具"是一个实用的解决方案,解决了在处理中文字符时经常遇到的编码问题。通过理解不同编码格式的特性,以及掌握使用这个工具的方法,用户可以在处理中文文件时更加...
综上所述,处理JSP中URL编码传递中文参数的关键在于理解字符编码的转换过程,并确保所有环节的编码一致。通过正确使用`URLEncoder.encode()`进行编码,以及适当地解码`request.getParameter()`返回的值,可以有效地...
总之,理解和掌握字符编码转换以及Url编码在winForm开发中是非常重要的,这有助于确保程序正确处理和显示各种字符,避免乱码问题,并确保数据在网络传输中的完整性和准确性。在遇到编码问题时,要灵活运用.NET提供的...
本文将深入探讨如何实现从Gb2312编码的网页向Utf-8编码网页的数据提交过程中的URL编码转换。Gb2312是一种广泛应用于中国大陆地区的字符编码标准,而UTF-8则因其能够支持全球绝大多数语言的特性,在互联网领域得到...