우리 응용 프로그램에서 특수 문자가 제대로 나오도록하기 위해 많은 시간을 보냈습니다. 우리의 공급자는 "GSM0338, 일명 ISO-8859"를 사용하라고 말했습니다. 나에게 이것은 스페인어 문자를 원하기 때문에 ISO-8895-1을 의미합니다.특수 문자를 통해 오는? SMPP 및 Java에서
흐름은 : (나는 잠시 동안이 주변에 연주 한 이후, 모든 것을 말하는.)
사용 메모장 ++ UTF-8 인코딩으로 메시지 파일을 만들 수 있습니다. (ISO-8859-1로 저장하는 옵션 없음). 변환하고 새 파일을 기록하는 빠른 자바 프로그램을 통해 각 파일을 보낸
- :
String text = readTheFile(....); output = text.getBytes("ISO-8859-1"); FileOutputStream fos = new FileOutputStream(filesPathWithoutName + "\\converted\\" + filename); fos.write(output); fos.close();
다른 프로젝트에서
- :
private static String readMessageFile(final String filenameOfFirstMessage) throws IOException { BufferedReader br = new BufferedReader(new FileReader(filenameOfFirstMessage)); String message; try { StringBuilder sb = new StringBuilder(); String line = br.readLine(); while (line != null) { sb.append(line); sb.append("\n"); line = br.readLine(); } message = sb.toString(); } finally { br.close(); } return message; }
통화가
보내기public void send(final String message, final String targetPhone) throws MessageException { SmppMessage smppMessage = toSmppMessage(message, targetPhone); smppSmsService.sendMessage(smppMessage); } private SmppMessage toSmppMessage(final String message, final String targetPhone) { SmppMessage smppMessage = new SmppMessage(); smppMessage.setMessage(message); smppMessage.setRecipientAddress(toGsmAddress(targetPhone)); smppMessage.setSenderAddress(getSenderGsmAddress()); smppMessage.setMessageType(SmppMessage.MSG_TYPE_DATA); smppMessage.setMessageMode(SmppMessage.MSG_MODE_SAF); smppMessage.requestStatusReport(true); return smppMessage; }
SMPP 테스트 클래스는이 파일을 읽고
문제점 : 문자가 포함 된 SMS는 배달되지만 이러한 문자는 물음표로 표시됩니다.
구성 :
smpp.smsc.charset=ISO-8859-1
smpp.data.coding=0x03
은 물론이 어떤 도움을 크게 감상 할 수있다. 읽어 주셔서 감사합니다.