Java 如何通过短信传递不同的字符集?

Java 如何通过短信传递不同的字符集?,java,encoding,sms,Java,Encoding,Sms,我们有一个用java编写的聚合器应用程序,它将基于xml的内容从第三方传送到不同的SMSC,然后SMSC将其传送到手机。xml内容主要是纯英语,而不是有效负载,可能是GSM 03.38、IA5、ISO-8859-1、Unicode、,二进制等。我们只有一个手机进行测试。我们发现除了iso-8859-1之外,没有任何东西可以在其中心交付,即某些字符丢失或乱码。有没有办法克服这个问题? 当做 subheadu解决方案将取决于各种情况,包括您如何向SMSC发送消息。您使用的是SMPP还是HTTP AP

我们有一个用java编写的聚合器应用程序,它将基于xml的内容从第三方传送到不同的SMSC,然后SMSC将其传送到手机。xml内容主要是纯英语,而不是有效负载,可能是GSM 03.38、IA5、ISO-8859-1、Unicode、,二进制等。我们只有一个手机进行测试。我们发现除了iso-8859-1之外,没有任何东西可以在其中心交付,即某些字符丢失或乱码。有没有办法克服这个问题? 当做
subheadu

解决方案将取决于各种情况,包括您如何向SMSC发送消息。您使用的是SMPP还是HTTP API?SMSC的文档应包括如何为SMS 7bit和16位unicode提供笨拙的字符。除非您知道要交付给什么,否则8位二进制文件将没有任何用处

  • 您收到的XML是否指示有效负载的字符集和编码
  • 在将有效载荷交付给SMSC之前,您是否正在转换有效载荷
  • 交付给SMSC的[转换]有效载荷是否符合其预期
  • 这种情况是否仅发生在7bit消息、unicode消息或所有消息中
  • 您是否尝试过向手机发送unicode和/或扩展GSM字符短信,以确保手机能够显示您期望的所有内容
  • 确认您的ByTestStream是GSM 03.38的正确表示

用更多的细节更新您的问题,我们可能会找到解决方案。

感谢您抽出时间回答我的问题。1) 我收到的xml不表示字符集。编码为UTF-8。我将给出协议为http的特定SMSC的实例。这里我们发送xml消息。传出xml消息编码为ISO-8859-1。对于此特定SMSC,我的疑问是我们只能传递拉丁语消息。因为它是xml消息,编码可能是utf-8。但是运营商规范说它应该是iso-8859-1。所以SMSC不想了解拉丁语以外的任何内容。对于另一个SMSC,协议是基于TCP的。它说有效负载应该是IA5。