用java把google和baidu的URL编码还原成明文字串
因为在做链接来源统计的时候需要把 http://www.baidu.com/baidu?word= ... B%F7&tn=myie2dg 这类的URL编码还原成明文字串,一般大部分的网站都是用普通的URL编码形式,如上面链接中的badu,这种非常容易转换和还原,Java包里提供了两个类的不同方法URLEncode.encode()和URLDecode.decode()能非常方便实现,但也有特别一点的就是Google了,http://www.google.com/search?hl= ... 9C%E7%B4%A2&lr= 他们的编码和别人不相同,如果使用URLDecode.decode()的话则变成乱码,查询的一些相关资料都说Google使用的是UTF-8编码,这点我就有些奇怪了,如果Google使用的是UTF-8编码,那别人使用的又是什么?IE的高级选项里不是有项“始终以UTF-8形式发送URL”的吗?不过UTF-8一个中文是3byte,而一般的编码则是2个byte,这就是为什么一般的URL中是以两组’%’代码表示一个汉字,如“中”的URL编码为"%D6%D0",而UTF-8则为3组,“中”为"%E4%B8%AD",这个问题我在Google里也没得到较好回答。我对各种编码形式了解的不是非常好,之前只看过怎么将字符串转成Utf8-URL编码的方法,其实也挺简单的,直接转成byte后直接取其16进制值前面加个%就行,还原方法在网上搜了几圈居然没发现有现成的!倒是也是几个人在CSDN问了此类的问题。最后还是决定自己搞定了,基本上是toUTF8的原路退回法,再加了个检测URL链接是否UTF-8形式的方法,觉得已蛮好用了。能拿出来share一下。
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.net.URLDecoder;
/**
*
Title:字符编码工具类
*
Description:
*
Copyright: flashman.com.cn Copyright (c) 2005
*
Company: flashman.com.cn
* @author: jeffzhu
* @version 1.0
*/
public class CharTools {
/**
* 转换编码 ISO-8859-1到GB2312
* @param text
* @return
*/
public String ISO2GB(String text) {
String result = "";
try {
result = new String(text.getBytes("ISO-8859-1"), "GB2312");
}
catch (UnsupportedEncodingException ex) {
result = ex.toString();
}
&n
相关文档:
本文介绍Java Swing中的JTree模型,介绍如何创建、修改、遍历,设置树。参考Core Java2相关章节及其源代码。
Swing树使用人们所熟悉的文件夹和树叶图来显示分层的数据。树由节点组成,节点可以是文件夹,也可以是树叶。文件夹可以有子节点,除根节点之外的所有节点都只有一个父节点。空的文件夹与树叶的不同之处就在于它允 ......
Java异常处理总结
异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出现,那么你每个地方都要做相同处理,感觉相当 ......
今天没事干。,拿Java中的main函数来讨教,。。还请诸位指点啊,,
public static void main(String args [])
{
.....
}
这是大家一般的写法吧,这里我想讨教的主要有以下几点:
1.它的参数问题,那个参数倒底有何用呢,,这是很令人迷惑的,这里自己写了个例子试了一下,但是出现了异常:
class A
{
......
转自:http://blog.csdn.net/babydavic/archive/2007/08/23/1755718.aspx
系统属性
是指与用户程序相关的操作系统配置信息以及软件信息。通常与用户程序相关的属性关键字包括:
●file.separator:文件分隔符,
Windows
环境下为“",
Unix
环境下为&ldquo ......
做了一个很简单的界面程序,也是我第一个界面程序.主要功能就是输入两个数字,计算这两个数字的和,很简单的功能,我却花了很久,对java太不熟悉了,连得到textField1中用户输入的值怎么获得,都不知道,后来baidu才知道,
用 textField1.getText()获得输入的值;,
  ......