java jsp编码_java – jsp utf编码

我很难搞清楚如何处理这个问题:

我正在为意大利大学开发一个网络工具,我必须显示带有重音的文字(例如è,ù,…);有时我从PostgreSql表(UTF8编码)中获取这些单词,但大多数情况下我必须从文件中读取长段落.这些文件编码为utf-8 xml,并在Smultron或任何utf-8编辑器中显示(它们是在python旧文件中使用& egrave等实体进行解析;而不是“è”).

我写了一个java类,它从xml文件中提取相关的段,其工作方式如下:

String s = parseText(filename,position)

如果我将返回的String写入文件,一切看起来都很好;问题是,如果我这样做

out.write(S)

在jsp页面中,我得到了奇怪的字符.顺便说一句,我用

String s = getWordFromPostgresql(…)

out.write(S)

在相同的jsp中它显示OK.

任何提示?

谢谢

尼古拉

感谢您的回复,但是该指令已经在页面中,但它不起作用(实际上它“有效”,但仅适用于我从数据库中获取的字符串).我认为有一些关于从文件中读取的内容,但我无法理解……它们在“java”中工作,但在“jsp”中却没有(不能想到更好的解释……)

这是从实际代码中提取的基本示例:从文件中读取的方法返回Map,从Mark(表示文本中的位置的对象)到String(包含文本):

这是在.jsp页面中(上面的帖子中引用了utf-directive)

// ...

Map map = TestoMarkParser.parseMarks(...);

out.write(map.get(m));

这就是结果:

“Fuper√≤cos√¨”in il il Genere Enharmonico,che quelli quali vi si esercitavano,“

如果我在java类中放入相同的代码,并用System.out.println替换out.write,结果如下:

“Fuperiòcosìinuso il Genere Enharmonico,che quelli quali vi si esercitavano,”

我一直在用十六进制编辑器做一些分析,这里是:

原始字符串:“fuperòcosì”

ò在xml文件中:

C3 B2

ò由jsp文件中的out.write()呈现:

E2 88 9A E2 89 A4

ò写入文件通过:

FileWriter w = new FileWriter(new File("out.txt"));

w.write(s); // s is the parsed string

w.close();

C3 B2

将每个字符的值打印为int

0: 70 = F

1: 117 = u

2: 32 =

3: 112 = p

4: 101 = e

5: 114 = r

6: 8730 = �

7: 8804 = �

8: 32 =

9: 99 = c

10: 111 = o

11: 115 = s

12: 8730 = �

13: 168 = �

14: 10 = `

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值