Java转utf16_用Java将Windows-1252转换为UTF-16

我试图将所有Windows特殊字符转换为其Unicode等效字符.我们有一个Flex应用程序,用户可以在其中保存一些Rich Text,然后通过Java Emailer通过电子邮件发送给他们的收件人.但是,我们继续遇到Word的特殊字符,这些字符只是在电子邮件中显示为?

到目前为止我已经尝试过了

private String replaceWordChars(String text_in) {

String s = text_in;

// smart single quotes and apostrophe

s = s.replaceAll("[\‘|\’|\‚]", "\'");

// smart double quotes

s = s.replaceAll("[\“|\”|\„]", "\"");

// ellipsis

s = s.replaceAll("\…", "...");

// dashes

s = s.replaceAll("[\–|\—]", "-");

// circumflex

s = s.replaceAll("\\u02C6", "^");

// open angle bracket

s = s.replaceAll("\‹", "

// close angle bracket

s = s.replaceAll("\›", ">");

// spaces

s = s.replaceAll("[\\u02DC|\\u00A0]", " ");

return s;

哪个有效,但我不想将所有Windows-1252字符编码为等效的UTF-16(假设这是默认的Java字符集)

但是,我们的用户不断从Microsoft Word中找到Java无法处理的更多字符.所以我搜索并搜索了这个例子

private String replaceWordChars(String text_in) {

String s = text_in;

try {

byte[] b = s.getBytes("Cp1252");

byte[] encoded = new String(b, "Cp1252").getBytes("UTF-16");

s = new String(encoded, "UTF-16");

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return s;

但是,当我在Eclipse调试器中观察编码时,没有任何变化.

必须有一个简单的解决方案来处理微软可爱的Java编码.

有什么想法吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值