我是ADK的新手。最近我写了一个程序来获取字符串 其他设备。除了中文字符串外,没关系。任何人都可以 有助于解决这个问题吗?
my codes look like this
mFileDescriptor = mUsbManager.openAccessory(mAccessory);
FileDescriptor fd = mFileDescriptor.getFileDescriptor();
mInputStream = new FileInputStream(fd);
byte[] b = new byte[512];
int n;
String str;
while ((n = mInputStream.read(b)) != -1)
{
......
str = (new String(b, 0, n, Charset.forName("UTF-8")));
......
}
答案 0 :(得分:0)
中文语言在Unicode中表示为多字节字符。因此,要正确阅读它,您需要使用能够理解和解释多字节字符编码概念的特定读取器对象。
基本上,你需要做这样的事情:
try {
BufferedReader bufReader = new BufferedReader(
new InputStreamReader(inputstream,Charset.forName("UTF-8")));
String line = null;
while ((line= bufReader.readLine())!= null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}