通过XMLHttpRequest发送日语字符

时间:2015-11-04 11:22:31

标签: javascript

我必须通过XMLHttpRequest发送日语名称。但它显示编码问题...我的tpl页面在utf-8字符集中。

这是我的代码。

    final Bitmap selectedRowToBmp = BitmapFactory.decodeResource(getResources(), R.drawable.share_image);       

            if (selectedRowToBmp != null) {

                String pathofBmp = Images.Media.insertImage(hostActivity.getContentResolver(), selectedRowToBmp, null, null);
                Uri bmpUri = Uri.parse(pathofBmp);
                final Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);

                shareIntent.setType("image/png");
                shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri);

}

}

我已经传递了这样的网址:

function getFormData(dno,rno) {
    var name = document.getElementById("f_nickname").value;
    var digNo = dno;
    var resNo = rno;
    var strVal = digNo + "-" + resNo;
    stp.push(strVal);

         var xhr = new XMLHttpRequest();
         if (!xhr) return false;
         var url = 'ajax.php' + '?prc=' + 'diagnoses' + '&name=' + name + '&diagres=' + stp;
         xhr.open('POST', url, true);
         xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
         xhr.send(stp);
        return true; 

但它显示在Ajax.php中,如

http://crp.com/ajax.php?prc=diagnoses&name=大阪&diagres=0-0,1-3,2-2,3-3,4-3,5-2

在很多方面尝试过...如何解决? 提前谢谢......

2 个答案:

答案 0 :(得分:3)

在网址中使用encodeURIComponent作为此类参数。

var url = 'ajax.php' + '?prc=' + 'diagnoses' + '&name=' + encodeURIComponent(name) + '&diagres=' + stp;

它会产生如下网址:

http://crp.com/ajax.php?prc=diagnoses&name=%E5%A4%A7%E9%98%AA&diagres=0-0,1-3,2-2,3-3,4-3,5-2

网络服务器将正确处理它。

答案 1 :(得分:1)

尝试添加:

xmlHttp.setRequestHeader('Content-type', 'text/xml;charset=utf-8');

使用:

encodeURIComponent(name)而非name