2007-06-28

将unicode转成中文及其它

找不到源文件了, 只好把.properties反转换成中文了
原理就是把.properties中的所有"\uxxxx"形式的转成对应的中文.

String r = FileUtils.readFileToString(new File("d:/aa.TXT"), "utf-8");
Pattern p = Pattern.compile("\\\\u([a-zA-Z0-9]{4})");
String t = "";
Matcher m = p.matcher(r);
while(m.find())
{
    t = m.group(1);
    r = r.replaceFirst("\\\\u([a-zA-Z0-9]{4})", String.valueOf(Character.toChars(Integer.parseInt(t, 16))));
}
System.out.println(r);

那个parseInt中的参数16表示t是16进制的字符串.
感觉还比较简洁的说~~~

P.S. FileUtils是jakarta commons.io里的

--
It's Hard to Define, But I Know it When I See it…

2007-06-14

httpclient提交中文的问题.

提交的时候老出错, 把我的中文全给搞成问号, 后来看服务器上有个encodingfilter, 貌似只接收utf-8的.

本来想的是看看httpclient里面哪里编码不对了, 改成utf-8,如此的思路.

后来, 发现给http head加个meta就成了:
post.addRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");

真的是不能想太复杂鸟...

--
It's Hard to Define, But I Know it When I See it…

2007-06-07

其实, 除了actionForm还有更简便的方式的~

Spring的这个databinder真是好用:

FriendLink bean = new FriendLink();
ServletRequestDataBinder binder = new ServletRequestDataBinder(bean, "link");
CustomDateEditor editor = new CustomDateEditor(new SimpleDateFormat("yyyy-M-d"), true);
binder.registerCustomEditor(Date.class, editor);
binder.bind(request);

这样就自动给bean注入值了, 而且它已经自动拥有了处理multipart的能力, 真是不错. 只是没有处理日期格式的能力, 但是象上面的代码就可以了.

顺便贴几个链接:
link 用spring做项目时的一些设计上的技巧.
link ServletRequestDataBinder的官方文档.
link 处理日期格式的方法就是从他这抄袭来的, 呵呵.

--
It's Hard to Define, But I Know it When I See it…