[英]log4j prints wrong characters
有人報告說我給他的使用 log4j 的程序不能正確打印字符。 他告訴我“é”在文件中打印為“é”(例如:“Vidéo”變成“Vidéo”)。
這可能是一些編碼問題,但我喜歡重現問題以證明它已修復。 我無法找到關於這個主題的好的(和簡短的)文檔,所以:
感謝您的幫助!
WriterAppender
(這是FileAppender
及其變體的基本 class 。具有setEcoding
方法。所以是的:使用log4j.appender.myappender.encoding=UTF-8
應該可以簡單地工作。
但是請注意,“Vidéo”變成“Vidéo”看起來像是在寫 UTF-8,但是無論您使用什么來查看文件,都會將其解釋為其他編碼(通常是一些 ISO-8859-* 編碼或 ISO 之一-衍生物)。
Ã
是 U+00C3, ©
是 U+00A9。 它們在 ISO-8859-1 中被編碼為 0xC3 和 0xA9。
é
是 U+00E9,在 UTF-8 中編碼為 0xC3 0xA9。
如果您的用戶正在查看 SSH 上的日志文件,那么他們需要告訴他們的 SSH 客戶端也使用 UTF-8。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.