배경 : Windows Server 2003 R2, RealPort 소프트웨어로 작성된 와이어 서비스 가상 직렬 포트, 직렬 포트는 COM5, 9600 보오드, 8 데이터 비트, 패리티 비트, 1 정지 비트, 흐름 없음으로 구성됨 제어, RXTX 사용 2.1-7.RXTX 가상 직렬 포트 읽기 문제
포트 COM5가 발견되면 직렬 포트는 portId.open 메서드를 사용하여 만들어지고 포트 매개 변수와 흐름 제어는 위의 장치 드라이버 설정과 일치하도록 설정됩니다. serialPort IntupStream을 가져 와서 입력 인코딩을 제어 할 수 있도록 InputStreamReader에 래핑합니다. 기본 인코딩은 물론 Cp1252입니다. 8 데이터 비트를 사용하는 경우 인코딩은 ISO-8859-1 즉 Latin1이어야합니다. 이고 InputStreamReader 메서드를 사용하고 있습니다. int c = isr.read(); SerialPort.Event.DATA_AVAILABLE의 경우 while 루프에서 정수 C를 출력하면 문자 ((char) c)로 캐스팅됩니다. 문제는 숫자와 결과 문자가 너무 높게 (범위는 135-250) 메시지가 모두 "All Rights Reserved."로 끝나고 각 메시지의 마지막 문자가 동일합니다. 그러나 문자 간에는 이동이 일관되지 않습니다. 다른 인코딩을 시도했습니다 : UTF8/UTF-8은 숫자를 더 높게 이동시킵니다. ascii/us-ascii도 그렇습니다. Cp1252는 65533, 8222 및 8240으로 이동되는 3 개의 문자를 제외하고 130-350 범위로 숫자를 이동합니다. 참고 : InputStreamReader.getEncoding() UTF8 및 UTF-8은 UTF8이고 ascii 및 us-ascii는 ASCII .
다른 인코딩을 시도해야합니까? 다른 사람이 이런 종류의 것을 보았습니까?