0 0

如何解决java串口读写乱码问题0

各位大神好,小生最近在公司搞串口通讯项目,在本机创建了虚拟串口,能很好的读写消息,但是就中文乱码问题,一直困扰着我,望大家帮忙,谢谢,所有源码如下:

package com.test;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;

import javax.comm.CommPortIdentifier;
import javax.comm.SerialPort;

public class serial {

public static void main(String[] args) throws Exception {
listPortChoices();
serialWriteAndReadDatas();
}

// 例举本机所以串口
static void listPortChoices() {
CommPortIdentifier portId;
Enumeration en = CommPortIdentifier.getPortIdentifiers();
while (en.hasMoreElements()) {
portId = (CommPortIdentifier) en.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
System.out.println(portId.getName());
}
}

}

//初始化串口读写操作
static void serialWriteAndReadDatas() throws Exception {
CommPortIdentifier portId = CommPortIdentifier
.getPortIdentifier("COM13");
SerialPort serialPort = (SerialPort) portId.open("aaa", 2000);
InputStream in = serialPort.getInputStream();
OutputStream out = serialPort.getOutputStream();
serialWriteDatas(out);
serialReadDtaas(in);
serialPort.close();

}

//串口写操作
static void serialWriteDatas(OutputStream out) throws Exception {

String Msg = "发送数据aaa656565";
for (int i = 0; i < Msg.length(); i++) {

out.write(Msg.charAt(i)); //这样写到超串口级终端会乱码
}

}

//串口读操作
static void serialReadDtaas(InputStream in) throws IOException {
String content = "";
while (true) {
int c = in.read();//这样从串口读也会乱码
Character d = new Character((char) c);
content = content.concat(d.toString());
System.out.println("content:" + content);
if (content.length() == 20) {
break;
}

}
System.out.println("内容:" + content);
}


}


2014年7月04日 21:01
  • 大小: 8.9 KB
  • 大小: 3.6 KB
目前还没有答案

相关推荐

    Java串口通信编程指南.doc

    Java串口通信编程指南 Java串口通信编程是嵌入式系统、自动化设备与计算机间进行数据交换的重要方式。在Java环境下,实现串口通信主要依赖于Java Communication API,尽管官方支持在3.0后逐渐转向Linux和Solaris...

    Java串口通信RXTX包

    Java串口通信RXTX包是一个开源库,主要用于在Java应用程序中实现与串行端口(COM端口)的交互。RXTX这个名字是“RX”(接收)和“TX”(发送)的组合,恰好对应了串口通信中的基本功能。这个库使得Java开发者能够...

    JavaWeb开发中文乱码问题解决方案

    1. **字符编码基础**:理解字符编码是解决问题的第一步。常见的字符集有GBK、GB2312(简体中文)、Big5(繁体中文)以及Unicode家族的UTF-8、UTF-16等。UTF-8是一种变长编码,可以兼容全世界几乎所有的字符,因此在...

    利用java rxtx对串口进行通讯

    它提供了一系列的Java API,使得开发者可以方便地打开、配置和读写串口,而无需关心底层操作系统具体的实现细节。 1. **RXTX的基本使用**: - **初始化串口**:首先需要创建`SerialPort`对象,通过`...

    Java串口操作包RXTX-2.1

    Java串口操作是Java应用程序与外部设备通信的重要方式,尤其在工业控制、嵌入式系统以及数据采集等领域中广泛应用。RXTX是一个优秀的开源库,专门用于Java平台上的串行通信,它为开发者提供了简单易用的API,使得...

    Android串口通信(ComAssistant)

    串口通信中可能会遇到硬件连接问题、权限问题或数据传输错误,ComAssistant应该有良好的错误处理机制,提示用户问题所在,并指导解决。 10. **应用范围**: 串口通信在物联网、自动化控制、设备监控等领域有广泛...

    好使的串口类,在portman监视数据通信未发现错误

    在实际应用中,这样的串口类库通常会配合其他软件工具或编程语言(如C#、Python、Java等)使用,为开发人员提供便捷的串口通信解决方案,从而提高工作效率并减少调试时间。例如,文件名“ComTest”可能是一个测试...

    串口开发工具

    5. **编程实现**:使用编程语言(如C、Python、Java等)编写串口读写函数,实现数据的收发。 6. **异常处理**:考虑到通信过程中的各种异常情况,如超时、数据错误等,编写相应的错误处理代码。 7. **测试验证**:...

    调用短信猫的java源码

    1. **Java串口通信**:由于短信猫通常是通过串口(Serial Port)与计算机通信,因此Java源码需要使用Java的串口API来实现数据交互。`javax.comm`库提供了一组接口和类,如`CommPortIdentifier`、`SerialPort`和`...

    android-serialport-api

    由于Android原生API并不直接支持串口操作,这个库填补了这一空白,提供了一系列Java类和方法,使得开发者可以通过简单的代码实现串口读写。 三、核心类与接口 1. `SerialPortFinder`:这是一个查找可用串口的工具...

    串口读转发到Socket.zip_SERIAL_victorykhr_zip

    在压缩包内的文件"串口读转发到Socket"来看,这可能是实现串口数据读取并转发至Socket的源代码文件,可能使用了C++、Python、Java等语言编写。这个程序的核心功能可能包括以下几点: 1. **串口通信**:串口(Serial...

    com.axis4.android.serialport:与android上的串口交互。 基于 https

    2. **Java串口编程**:在Java中,我们可以使用javax.comm库来实现串口通信,但在Android中,这个库并不被支持。因此,我们需要使用特定于Android的库,比如UsbSerial库或者本例中的com.axis4.android.serialport库。...

    IO包的所有内容

    在Java编程中,IO流用于在内存和外部存储设备(如硬盘、网络、串口等)之间传输数据。本文将详细阐述IO流的基本概念、分类、File类的使用以及字符编码问题和对象序列化。 1. **文件类(File类)的使用** - **定义*...

Global site tag (gtag.js) - Google Analytics