Java将汉字字符串转为html标示符

前几天在解决Java自动生成word的时候(模板方式),出现了office打开汉字乱码,wps打开正常。这怎么能行,虽然客户要求用wps,但本着做项目要严谨的态度应该把这个问题解决掉。

刚开始分析是汉字编码的问题,但经过多次的编码与解码没有效果,说明问题不是出现在这里。抱着实试试看的态度,将生成的word用ue打开了,发现整个文件仅有少量的汉字(这也证明了不是汉字编码的问题)(在生成的word里找到这几个汉字也是有方法的,在要生成的汉字后面添如多个“1”,这样在ue里就可以搜索多个“1”而找到汉字)。此时就奇怪了,整个文档里有很多汉字的为什么只有生成的汉字显示出来了呢,其他汉字都哪里去了?仔细一看,找到了,每个汉字都变成了“&#”加5个数字的形式。

看到这问题就比较明了了,“&#”加5个数字的就是汉字,这种汉字在word中就能后显示,而直接的汉字不能显示,这我们也不能怪word的“笨”,从这也可以看出还是我们中国的wps比较体贴中国人。那原因找到了就要解决,其实问题很明了,就是把每个汉字变成“&#”加5个数字,关键是怎么转,这又是什么码?到网上搜了下原来这叫HTML标示符;又搜了下,还真有Java将汉字转为HTML标示符的方法,下面是将字符串转HTML标示符的方法


// 将汉字字符串转为html标示符
private String changeToHTMLCode(String src) {
    String htmlStr = "";
    for (int i = 0; i != src.length(); i++) {
        int str = src.codePointAt(i);
        htmlStr = htmlStr + "&#" + str + ";";
    }
    return htmlStr;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值