簡體   English   中英

從OS X到Windows的Java編碼

[英]Java encoding from OS X to Windows

我已經使用swing GUI進行了原始的多客戶端聊天。 只要兩個人都在同一操作系統上編寫,一切都可以正常工作。 如果其中一個是從Windows編寫的,另一個是從OS X編寫的,則某些特殊字符的編碼將變得毫無意義。 (我來自CZE,我們使用š,ě,č,ř,ž...等字符)。 我已經搜索了很長時間,但沒有找到任何有用的信息。

我的輸入和輸出定義為:

in = new BufferedReader(new InputStreamReader(soc.getInputStream()));
out = new PrintWriter(new OutputStreamWriter(soc.getOutputStream()));

其中soc是用於連接到服務器端的套接字。

發送過程非常簡單:

out.println(message);

其中message是一個字符串,我通過調用方法.getText()從JTextArea獲得

我知道為什么會發生此問題,但是我找不到任何合理的解決方案。 任何幫助將不勝感激。

謝謝

從Input / OutputStreams讀取字符數據時,最好始終指定字符編碼。 否則,將使用平台默認編碼(在所有系統上可能都不相同)。

in = new BufferedReader(new InputStreamReader(soc.getInputStream(), StandardCharsets.UTF_8));
out = new PrintWriter(new OutputStreamWriter(soc.getOutputStream(), StandardCharsets.UTF_8));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM