public class Encoder {
public static String Encode(String text, String Endocing) {
StringBuffer result = new StringBuffer();
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
if (c >= 0 && c <= 255) {
result.append(c);
}
else {
byte[] b = new byte[0];
try {
b = Character.toString(c).getBytes(Endocing);
}
catch (Exception e) {
e.printStackTrace();
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0)
k += 256;
result.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return result.toString();
}
public static String EncodeKeyWords(String Words, String Encoding) {
String Codes = "";
String Word = "";
int i = 0;
Words += ' ';
while (i < Words.length()) {
if (Words.charAt(i) != ' ') {
Word += Words.charAt(i);
}
else {
Codes += Encode(Word, Encoding) + '+';
Word = "";
}
i++;
}
Codes = Codes.substring(0, Codes.length() - 1);
return Codes;
}
}
public static String Encode(String text, String Endocing) {
StringBuffer result = new StringBuffer();
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
if (c >= 0 && c <= 255) {
result.append(c);
}
else {
byte[] b = new byte[0];
try {
b = Character.toString(c).getBytes(Endocing);
}
catch (Exception e) {
e.printStackTrace();
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0)
k += 256;
result.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return result.toString();
}
public static String EncodeKeyWords(String Words, String Encoding) {
String Codes = "";
String Word = "";
int i = 0;
Words += ' ';
while (i < Words.length()) {
if (Words.charAt(i) != ' ') {
Word += Words.charAt(i);
}
else {
Codes += Encode(Word, Encoding) + '+';
Word = "";
}
i++;
}
Codes = Codes.substring(0, Codes.length() - 1);
return Codes;
}
}
使用时 Encoder.EncodeKeyWords("关键字", "GB2312") 即返回相应的编码,其中GB2312是百度所使用的,需要Google的编码时应改成"UTF-8"。
来自http://gaofeihang.blog.163.com/blog/static/84508285201021032631948/
相关推荐
在Java编程语言中,中文编码问题是一个常见的挑战,尤其是在处理文本输入、输出或者网络通信时。本文将深入探讨Java中的中文编码问题,包括其原因、解决策略以及相关的API使用。 一、编码概述 编码是将字符(如中文...
在实际解决乱码问题的过程中,如果发现使用Base64加密传输中文数据还会出现问题,可以改用URL编码的方式来传输数据,即使用JavaScript的`encodeURI`函数对数据进行两次URL编码,后端接收到后进行一次URL解码即可。...
为了确保从数据库中获取的数据能够被正确解析和显示,需要在建立数据库连接时指定字符编码。这可以通过在URL参数中加入`useUnicode=true`和`characterEncoding=`来实现。 ##### 使用UTF-8作为数据库字符编码 如果...
在IT行业中,尤其是在Java编程领域,中文乱码问题是一个常见的挑战。这主要涉及到字符编码的处理,涉及到Unicode、GBK、UTF-8等不同编码格式之间的转换和一致性问题。本篇文章将深入探讨这个问题,并提供一种彻底...
在Java编程语言中,获取汉字的拼音是一项常见的需求,特别是在处理中文字符串时,例如搜索、排序或者构建用户友好的URL。本篇文章将深入探讨如何利用Java实现这一功能,结合提供的两个源码文件`GB2Alpha.java`和`...
Java编程中的中文问题主要围绕如何在Java程序中正确处理和显示中文字符,包括在不同环境下(如Windows、Linux、Web应用等)的编码转换问题,以及与数据库等外部系统交互时的字符编码问题。在Java开发中,由于Java采用...
例如,使用GB2312编码,一个汉字可能被表示为两个连续的16进制数,而在UTF-8编码中,一个汉字可能是三个或四个16进制数。 "汉字十六进制转换工具.exe" 是一个应用程序,其功能就是将汉字转换成16进制表示,或者将16...
Unicode编码旨在表示所有语言的字符,是一个16位的编码标准,可以说是字符编码中最统一的形式。UTF-8编码是一种可变长度的编码方式,它兼容ASCII,同时也支持包括中文在内的多种语言。 在Java Web开发中,字符编码...
而在Java中,`java.nio.charset`包提供了许多类和接口,用于进行字符编码和解码,如`Charset`类可以用来获取和操作不同的字符集。 接下来是解码,它是编码的逆过程。在JavaScript中,你可以使用`decodeURI()`、`...
在UTF-8编码中,英文字符用8位(1个字节)表示,而中文字符则使用24位(3个字节)编码。 ISO-8859-1编码,又称Latin1,是一种8位单字节编码方式,向下兼容ASCII编码,能够表示几乎所有欧洲语言字符。但需要注意的是...
在Java编程语言中,开发一个汉字转拼音(包含首字母)的工具类是一项常见的任务,尤其是在处理中文字符串、搜索引擎优化(SEO)或者构建用户友好的URL时。这个工具类可以帮助程序将汉字转换为对应的拼音表示,同时...
总之,自动获取汉字的拼音简码在Java Web开发中是一个实用的技术点,涉及对汉字编码的理解、第三方库的使用以及字符串处理技巧。通过学习和掌握这些知识,开发者可以更好地处理中文字符,提升应用的功能性和用户体验...
二维码是一种二维条形码,它将信息编码为黑白小方块,可以存储更多的数据,包括数字、字母、汉字以及URL等。当使用手机扫描二维码时,读码器会解码这些小方块,从而获取其中的信息。 在Java中,我们可以借助开源库...
这里的`GB2312`是中国大陆最常用的汉字编码之一。 #### 1.2 Servlet响应时的字符集设置 在Servlet处理请求并返回响应时,也需要设置响应体的字符集编码,确保客户端能够正确解析内容,示例代码如下: ```java ...
- 中文验证码:需要用到Unicode编码,通过随机选择汉字的Unicode范围(如\u4e00-\u9fff)来生成中文字符。 2. **图像生成**: - 使用`java.awt.Color`定义背景色、线条颜色等。 - `java.awt.Font`创建字体对象,...
其次,在Java端,我们通常使用`URLDecoder.decode()`方法对从URL参数中获取的字符串进行解码。由于在JavaScript端已经对中文进行了`encodeURI()`编码,所以在Java端我们需要指定正确的字符集进行解码,通常是"UTF-8...
在Java面试中,涉及到的技术和知识点广泛,涵盖了字符串处理、数据库连接、XML解析、线程同步等多个方面。以下是对这些面试题的详细解答: 1. **字符串截取**:题目要求编写一个函数,能按字节截取字符串,同时确保...