![](/img/trans.png)
[英]Reading from Windows-1252 format from Oracle and Writing to XML file with Latin1 characters UTF-8 encoded
[英]displaying WINDOWS-1252 encoded text from file as html
我有一個文本文件,帶有ø和ß這樣的WINDOWS-1252字符。 該文件通過表單提交上載到servlet,然后在其中使用opencsv進行解析,並以List對象的形式返回到顯示該文件的jsp頁面。 utf-8字符顯示為? 我正在嘗試找出編碼可能在哪里出錯。 我試過很多東西:
我的頁面具有標簽<%@page contentType="text/html" pageEncoding="WINDOWS-1252"%>
文件輸入已編碼- new FileInputStream(file), "WINDOWS-1252")
每個字符串都經過編碼s = new String(s.getBytes("WINDOWS-1252"));
編碼還會在其他地方失敗? 有任何想法嗎?
一些故障排除建議:
在各個階段進行調試打印或以其他方式檢查文本為十六進制,並驗證編碼確實符合您的期望。
確保沒有BOM(字節順序標記),如果有並且您沒有擺脫它的簡便方法,請查看此問題並在其中鏈接: 讀取UTF-8-BOM標記
確定問題已解決。 因此,第一個問題是它根本不是utf-8文件,而是WINDOWS-1252。 我確定使用juniversalchardet lib(非常有幫助且易於使用)。 然后,我必須確保使用FileInputStream讀取具有正確字符集的文件:
new FileInputStream(file), "WINDOWS-1252")
我只需要確保使用標簽<%@page contentType="text/html" pageEncoding="WINDOWS-1252"%>
在jsp文件中以正確的字符集顯示它即可
差不多了
(1)確定字符集
(2)確保您正在正確讀取文件
(3)確保正確顯示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.