简体   繁体   English

Java DataOutputStream 读取值问题

[英]Java DataOutputStream reading value issue

who can say what is the problem?谁能说是什么问题?

Socket clientSocket = new Socket(hostname, port);
DataOutputStream os = new DataOutputStream(clientSocket.getOutputStream());
String value = "состав";
os.writeBytes( value);

it returns "A>AB02" instead of "состав", but it works fine with english words, i have tried to encode and decode value but result hasn't changed它返回“A>AB02”而不是“состав”,但它适用于英文单词,我尝试编码和解码值但结果没有改变

You need to use the Locale object for Russia while writing to the stream.在写入 stream 时,您需要为Russia使用Locale object。

Replace代替

DataOutputStream os = new DataOutputStream(clientSocket.getOutputStream());
String value = "состав";
os.writeBytes( value);

with

PrintStream ps = new PrintStream(clientSocket.getOutputStream());
String value = "состав";
ps.printf(new Locale("ru"), "%s", value);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM