2015-11-04 2 views
1

Мне нужно отправить японское имя через XMLHttpRequest. но он отображает проблему кодирования ... моя страница tpl находится в кодировке utf-8.отправить японский символ через XMLHttpRequest

вот мой код.

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; 

}

я передавая URL, как это:

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

, но он показывает в ajax.php как

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

пытались во многих отношениях ... Как решать? заранее спасибо ...

+1

Вы пробовали установку 'xhr.setRequestHeader (« Accept-Charset »,« unicode-1-1; q = 0.8 »),' http: //www.w3.org/Protocols/rfc2616/rfc2616-sec14. html – JoSSte

+1

Я бы не ожидал, что это будет иметь значение здесь, но вы должны запускать свои строки через 'encodeURIComponent' перед тем, как поместить их в URI. – Quentin

+0

", но он отображается в Ajax.php как" - Как вы это тестируете? – Quentin

ответ

3

Использование encodeURIComponent для таких параметров в URL.

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

Это приведет к URL, как:

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 

И веб-сервер будет обрабатывать его правильно.

+0

спасибо .. сработано отлично ... – VJS

1

Попробуйте добавить:

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

Использование:

encodeURIComponent(name) вместо того, чтобы просто name

+0

'stp' не является XML-документом. Почему это поможет? Проблема в URL-адресе в любом случае. – Quentin

+0

спасибо .. сработано совершенно ... – VJS

Смежные вопросы