在Java中的URL中插入unicode字符

时间:2015-02-12 07:55:28

标签: java unicode utf-8 desktop-application

我想从基于Java的桌面软件发送印地语语言的短信。下面是从JTextArea获取消息并将消息附加到URL中的代码。使用此代码,我可以从Macbook发送印地语短信,但同样在Windows中不起作用。从Windows发送短信时,字符将替换为?

以下是从JTextArea

获取消息的代码
byte[] utf8Bytes;
utf8Bytes = hindiSMS.getText().getBytes(StandardCharsets.UTF_8);
String hindiMessage = new String(utf8Bytes,StandardCharsets.UTF_8);
hindiMessage.replace(" ", "+");
Util.sendSMS(hindiMessage, hindiMobileNos);

以下是发送短信的代码

    String url="http://sms.sendonlinesms.com/sendsmsv2.asp?user=****&password=*******&sender=*****&text="+message+"&PhoneNumber="+mobilenos+"&unicode=1";       

    URLEncoder.encode(url,"UTF8");

    URL myURL=new URL(url);

    URLConnection yc = myURL.openConnection();

更新:我也尝试过以下代码

 URI uri=null;
    try {
        uri = new URI(
                "http", 
                "sms.sendonlinesms.com", 
                "/sendsmsv2.asp",
                "user=****&password=******&sender=70025&text="+message+"&PhoneNumber="+mobilenos+"&unicode=1",null);


    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    URL myURL=uri.toURL();


    URLConnection yc = myURL.openConnection();

但它并没有任何区别。在Mac上运行正常但在Windows上运行不正常。 使用mac上的应用程序,我可以在印地语中发送短信,但在Windows上使用应用程序,印地语字符被替换为'?'

0 个答案:

没有答案