TongWeb下亂碼問題解決思路
解決亂碼問題主要看以下幾項配置,重點要了解這些編碼設定所起的作用:
注:亂碼問題看TongWeb的server.log日誌基本沒用,重點是看應用採用的編碼以及作業系統、TongWeb的編碼設定。
1. Linux下先通過local -a檢視作業系統是否有相應的中文字符集。
2. Linux下再看環境變數LANG值,通常為zh_CN.GBK或zh_CN.UTF-8。通過echo $LANG檢視,通過export LANG=zh_CN.GBK來設定。
3. JDK引數-Dfile.encoding=GBK,加在TongWeb啟動指令碼中。
以上兩項是JDK的預設編碼,-Dfile.encoding優先於LANG環境變數。
file.encoding 這個屬性的英文解釋:
This property is used for the default encoding in Java, all readers and writers would default to use this property. “file.encoding” is set to the default locale of Windows operationg system since Java 1.4.2. System.getProperty(“file.encoding”) can be used to access this property. Code such as System.setProperty(“file.encoding”, “UTF-8”) can be used to change this property. However, the default encoding can not be changed dynamically even this property can be changed. So the conclusion is that the default encoding can’t be changed after JVM starts. “java -Dfile.encoding=UTF-8” can be used to set the default encoding when starting a JVM. I havesearched for this option Java official documentation. But I can’t find it.
4. TongWeb 的Web容器 request 、response預設編碼GBK。
5. 對於URL的編碼,在TongWeb的 http通道中設定,預設GBK。“URL編碼格式”相當於tomcat的URIEncoding。“ uri處理”相當於tomcat的useBodyEncodingForURI。
若tomcat下不亂碼,而在TongWeb下亂碼,則可參考tomcat配置來配置TongWeb。
URIEncoding:This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, GBK will be used.
useBodyEncodingForURI:This specifies if the encoding specified in contentType should be used for URI query parameters, instead of using the URIEncoding. This setting is present for compatibility with Tomcat 4.1.x, where the encoding specified in the contentType, or explicitly set using Request.setCharacterEncoding method was also used for the parameters from the URL. The default value is false.
6. 資料庫存入資料亂碼,還要看資料本身的編碼設定。另外不同資料的JDBC url也有編碼設定,如:MySQL的jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8 。
7. 重點檢視應用編碼規則,一定要了解應用的編碼用法。
主要看應用filter中設定的編碼:request.setCharacterEncoding("UTF-8")
應用程式碼中有沒有做轉碼,如: new String(test.getBytes("iso-8859-1"),"utf-8");
8.日誌亂碼主要原因:
(1)telnet終端編碼與日誌輸出的編碼不一致導致,把日誌下載到windows下用Notepad++等工具檢視,並進行UTF-8與GBK轉碼試試。
(2) log4j編碼設定不對,注意引數中的log4j.appender.file.encoding=UTF-8。
相關文章
- 解決中文亂碼問題
- springmvc 解決中文亂碼問題SpringMVC
- MySql中文亂碼問題解決MySql
- Jmeter 解決中文亂碼問題JMeter
- 解決Kali Linux 2020.1亂碼問題Linux
- java中亂碼問題解決方法Java
- js解決url中文亂碼問題JS
- cat 輸出亂碼問題解決
- 解決plsql中中文亂碼問題SQL
- flashfxp 亂碼,2種辦法解決flashfxp 亂碼問題
- phantomjs截圖中文亂碼問題解決JS
- JavaWeb 亂碼問題終極解決方案!JavaWeb
- 自定義RedisTemplate,解決Redis亂碼問題Redis
- Filter解決亂碼問題 -2024/11/6Filter
- 【日誌亂碼】解決Tomcat啟動控制檯亂碼問題Tomcat
- 雲伺服器:解決linux下zip檔案解壓亂碼問題伺服器Linux
- 解決Intellij IDEA中執行緩慢的問題,tomcat控制檯列印亂碼問題,國際化亂碼配置檔案亂碼解決IntelliJIdeaTomcat
- 雲伺服器中文亂碼問題解決伺服器
- 解決Url帶中文引數亂碼問題
- Sublime Text 3 中文亂碼問題的解決
- python json.dumps中文亂碼問題解決PythonJSON
- SqlServer資料庫中文亂碼問題解決SQLServer資料庫
- 完美解決jspdf各種中文亂碼問題JS
- JMeter響應亂碼問題解決方案教程JMeter
- 【IDL】IDL中亂碼問題的解決方法
- 解決zabbix圖形化中文亂碼問題
- LiveCharts中文顯示亂碼問題的解決Echarts
- mysql使用source 命令亂碼問題解決方法MySql
- 解決Eclipse中文註釋部分亂碼的問題Eclipse
- 解決excel開啟.csv檔案亂碼問題Excel
- URL地址中的中文亂碼問題的解決
- Mysql中文亂碼問題的最佳解決方法MySql
- 巢狀ScrollView問題解決思路巢狀View
- 解決PHP匯出CSV檔案中文亂碼問題PHP
- 解決jenkins 傳送郵件圖片亂碼問題Jenkins
- 解決ASP.NET中的各種亂碼問題ASP.NET
- IDEA裡Tomcat Console日誌中文亂碼問題解決IdeaTomcat
- 解決網站搬家windows下解壓圖片檔名亂碼問題的利器:Bandizip網站Windows