由于一些需求,要对referrer url的参数进行解析,但参数经常会出现很多通过不同编码的文字。
例如"广东广州"通过不同字符编码的情况:
utf-8:%E5%B9%BF%E4%B8%9C%E5%B9%BF%E5%B7%9E
gbk:%B9%E3%B6%AB%B9%E3%D6%DD
在解码时无法指定是编码进行解码。这样容易造成乱码。
实际上是有办法可以知道这字符串是通过什么编码的来的。代码如下
/**
*
* @author onedear
*
*/
public class CharsetUtil {
private static String[] charsets = new String[]{"utf-8" , "gbk"};
public static String getCharset(String word) {
for(String charset : charsets) {
try {
String decodeWord = URLDecoder.decode(word, charset);
String encodeWord= URLEncoder.encode(decodeWord, charset);
if(word.equals(encodeWord))
return charset;
} catch (UnsupportedEncodingException e) {
continue;
}
}
return "utf-8";
}
}
用一个编码对字符串是解码再编码,的出来的值如果跟一开始的值一样,则说明这个编码是对的。
原理会尽可能的补上
分享到:
相关推荐
总之,解决Java中的URL中文乱码问题需要理解URL编码的原理,并在客户端和服务器端采取相应的措施,确保编码和解码的一致性。无论是通过JavaScript编码、Java服务器端解码,还是调整服务器配置,关键在于确保字符集的...
解决思路:进行Base64前先进行URL编码,在进行URL编码的时候,注意设置不需要SpaceAsPlus选项。 javascript代码: let decodedData = window.atob(JSONStr); let decodedData1 = decodeURIComponent(decodedData)...
本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**:服务器与客户端(浏览器)之间使用的字符编码格式不同,例如服务器使用GBK编码,而浏览器使用UTF-8编码...
在进行Web开发时,我们经常会遇到...总之,理解和正确应用URL编码与解码是解决URL传值乱码问题的关键。通过遵循标准的编码规则,确保前后端编码格式一致,并在适当的时候进行解码,我们可以有效地防止和解决这类问题。
PHP 中 URL 地址栏传参数中文乱码解决方法汇总是指在 PHP 编程中,如何解决 URL 地址栏传参数中文乱码的问题。这个问题是由于浏览器和服务器之间的编码问题引起的。 url 编码语法: 在 PHP 中,url 编码语法使用 ...
在本文中,我们将详细介绍乱码问题的原因、类型和解决方法。 一、编码不一致的原因 编码不一致是乱码问题的主要原因。编码不一致可能出现在多个方面: * 页面编码:jsp 默认 iso8859-1 * 服务器编码:tomcat 默认...
以上就是解决在使用jQuery获取URL参数时出现中文乱码问题的两种方法,以及相关的编码和解码处理方式。需要注意的是,乱码问题的出现主要是由于编码和解码不一致导致的,所以在前后端处理URL参数时,一定要注意正确地...
### Web程序开发中的URL乱码解决方案 #### 一、前言与背景 在Web应用程序的开发过程中,我们经常遇到的一个问题就是URL中的中文字符或特殊字符出现乱码的情况。这不仅影响用户体验,还可能导致功能异常。本文将...
Tomcat和WebLogic中文乱码问题解决方案 在 Java Web 开发中,中文乱码问题一直是困扰开发者的主要问题之一。 Tomcat 和 WebLogic 是两个常用的 web 服务器,都是支持 Servlet 和 JSP 的。然而,在使用这些服务器时...
总之,解决iOS URL中文乱码问题的关键在于正确地对URL进行编码,避免不必要的重复编码,并在需要时使用适当的解码方法。同时,了解URL编码的原理和标准,以及如何在不同平台间正确传递和处理这些信息,对于开发过程...
了解这些基本概念后,结合以上三种方法,我们可以有效解决ASP.NET中URL参数传递中文时的乱码问题。在实际开发中,应根据具体项目需求和环境选择合适的方法,确保数据的正确传递。同时,为了兼容更多情况,建议在开发...
2. **URL解码**:与编码相对应,我们有`java.net.URLDecoder.decode()`方法来解码URL中的参数。同样,需要指定正确的字符集: ```java String decodedParam = URLDecoder.decode(encodedParam, "UTF-8"); ``` 3...
js中文乱码问题分析及解决方案 在Web开发中,JavaScript文件的编码问题是一个常见的错误,特别是在引入外部JavaScript文件时。如果Web页面和JavaScript文件使用不同的编码,可能会出现乱码问题。本文将分析...
本文将详细介绍两种解决JSP页面URL参数乱码的方法,虽然不能保证100%有效,但它们是实践中常用且有效的解决方案。 **方法一:修改Tomcat配置** 1. 首先,我们需要进入Tomcat服务器的配置目录,通常是`$CATALINA_...
### J2EE乱码问题解决方法 在J2EE(Java 2 Platform, Enterprise Edition)应用开发中,字符编码问题尤为常见,特别是当涉及到多语言环境时。乱码问题不仅影响用户体验,还可能导致数据错误处理等问题。本文将详细...
在编程领域,很多编程语言都内置了URL解码的函数,例如在JavaScript中,我们可以使用`decodeURI()`或`decodeURIComponent()`方法;在Python中,有`urllib.parse.unquote()`函数;在Java中,可以使用`java.net....
### extjs前后台交互参数出现中文乱码问题的解决方法 #### 问题背景与原因分析 在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的...
以下是对这个问题的详细解析和解决方案: 1. **字符集概念**: - **ASCII**:7位字符集,包含128个字符,主要为英文字符。 - **ISO-8859-1**:扩展ASCII,增加了一些西欧语言的字符。 - **双字节字符集**:如GB...