【发布时间】:2013-05-20 09:36:30
【问题描述】:
我正在使用 jsms api 从电脑向手机发送 unicode 消息。当我使用这部分代码时,它可以完美运行。我收到完美显示“ఈ ఒక తెలుగు సందేశం”的消息。
SmsMessage msg = new SmsMessage();
msg.setRecipient("+919561356345");
String unicodeMsg = "ఈ ఒక తెలుగు సందేశం"; //telugu script
msg.setUserData(unicodeMsg.getBytes("UTF-16BE"));
msg.setCodingGroup(SmsMessage.DC_GROUP_GENERAL);
msg.setAlphabet(SmsMessage.DC_UCS2);
msg.setMessageClass(SmsMessage.NO_CLASS);
service.init(props);
service.connect();
service.sendMessage(msg);
System.out.println("Message sent successfuly, "+msg.getMessage());
service.disconnect();
现在在代码中,如果我从数据库中检索相同的消息内容以摆动 TextArea,然后在此处提取它,我会在手机上收到一条空白消息。转换有问题吗?这是我的代码:
// here the argument text is taMessage.getText() where taMessage is TextArea;
public SendUnicodeMessage(String port, String text, Object no){
SmsMessage msg = new SmsMessage();
String num = no.toString();
msg.setRecipient(num);
String unicodeMsg = text.toString ;
msg.setUserData(unicodeMsg.getBytes("UTF-16BE"));
msg.setCodingGroup(SmsMessage.DC_GROUP_GENERAL);
msg.setAlphabet(SmsMessage.DC_UCS2);
msg.setMessageClass(SmsMessage.NO_CLASS);
service.init(props);
service.connect();
service.sendMessage(msg);
System.out.println("Message sent successfuly, "+msg.getMessage());
service.disconnect();
【问题讨论】:
-
重要的是 sms_gate 是否接受那些 unicode 字符或编码类型
-
@mKorbel 在我的第一种情况下,即直接输入文本时,它完美地发送出去,我在手机上得到了那个脚本。但是当我从TextArea中提取它时,似乎有一些问题
-
您是否检查过您的数据库是否正确存储了文本?
-
@AaronDigulla 当我在 GUI 中显示数据库中的内容时,它会正确显示所有 unicode 字符。
-
您是否单步执行
SendUnicodeMessage以确保消息编码正确?最后一个System.out.println有效吗?
标签: java swing unicode character-encoding