Java 5授权标头字符集ISO-8859-2

时间:2011-12-01 00:00:41

标签: java web-services http-headers basic-authentication

我需要你的帮助。我有一个使用Authorization标头的休息WS。我必须使用ISO-8859-2 charset。 当我使用java 6(使用jersey)在tomcat上测试它时,在日志中一切看起来都很好。

授权标题:基本12345:ruž

日志:

2011-11-30 23:43:04,537 [http-8081-1] INFO  jersey.jaxb.model.TodoResource  - Username = 12345 Password = ruž

但是当我在同一个tomcat上用java 5测试它时,我得到了这个:

2011-12-01 00:29:49,511 [http-8081-1] INFO  jersey.jaxb.model.TodoResource  - Username = 12345 Password = ru?…Â?

我的java代码:

...
auth = auth.substring("Basic ".length());
String[] values = new String(Base64.base64Decode(auth).getBytes("ISO-8859-2")).split(":");
String username = values[0];
String password = values[1];

logger.info("Username = " + username + " Password = "+ password);

我错过了什么或问题出在其他地方。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

我相信你运气不好,因为除了简单的ASCII之外的任何东西都不符合规范。见https://stackoverflow.com/a/703341/317667