2011-12-17 3 views
3

우선 그것은 userscript이며 서버 측 인코딩을 변경할 수 없습니다.AJAX POST 요청을 통해 iso-8859-1을 보내시겠습니까?

내 문제는 POST 매개 변수 인코딩 (나중에 xhr.setRequestHeader를 통해 전송)에 encodeURIComponent()를 사용할 때 문자가 utf-8로 인코딩되지만 서버가 iso-8859-1 데이터를 수신해야한다는 것입니다. iso-8859-1에서 encode 할 encodeURIComponent()에 대한 대안이 있습니까?

. yournewmessage:%E9%80%80

서버가 필요합니다 : xhr.send('yournewmessage='+encodeURIComponent('é'))를 통해 yournewmessage:%E9

아약스이 전송 :

웹 사이트에 고전적인 형태는 다음과 같이 é을 보내

이해 있는지 확인하려면, 여기 exemple입니다 전자. 나를 도울 수있는 사람 덕분에.

+1

확실하지 않습니다. URI는 RFC2396에 정의 된대로 사양에 따라 UTF8을 사용합니다. – Polynomial

+0

@Polynomial 아마도별로 의미가 없지만 때로는 필요하고 웹 브라우저는이를 수행하는 방법을 알고 있습니다. –

+1

내가 생각할 수있는 유일한 해결책은 문자열의 각 * byte * (char가 아님)를 16 진수 표현으로 변환하고 업로드하는 것입니다. JS의 문자열에서 인코딩 및 인코딩 오류 배열을 가져 오는 방법에 대한 훌륭한 대답이 있습니다. http://stackoverflow.com/questions/1240408/reading-bytes-from-a-javascript-string – Polynomial

답변

0

그래서이 문제를 파악했습니다. 내가 한 일은 utf-8과 iso-8859-1 사이의 동등성을 찾는 것이 었습니다. utf-8과 cp1252 (Windows-1252) 사이에 있었기 때문에 utf-8에서 cp1252로, cp1252에서 iso- 8859

http://pastebin.com/jTDqR2PQ

미운 코드, 프랑스어 왼쪽 의견 및 unelegant 솔루션 (이 두 가지 유사점을 많이 가지고),하지만 난 실제로 작동하는 솔루션을 발견하면서 unansered이 질문을보고 기분이 좋지.

관련 문제