2010-11-18 5 views
0

Ajax와 PHP를 사용하여 데이터베이스로 필드를 업데이트해야합니다.자바 스크립트 또는 jquery에서 문자열을 인코딩하고 PHP를 사용하여 디코딩하는 방법

그것은 잘 작동하지만, 다음과 같은 특수 문자가있는 경우

اللهم اني اشكو اليك ضعف قوتي وقلة حيلتي وهواني علي الناس

스크립트는 데이터베이스에 정크 데이터를 삽입합니다.

javascript의 escape()를 사용하여 URL 인코딩을 시도했지만 데이터를 인코딩하지만 PHP로 디코딩하면 다시 정크 값을 표시합니다.

+1

UTF-8 데이터를 처음부터 끝까지 처리하는 동안 인코딩 할 필요가 없습니다. 데이터베이스/데이터베이스 연결/앱/웹 사이트 인코딩은 어떻게 설정됩니까? – deceze

+0

내 데이터베이스는 mysql입니다. PHP는 charset = utf-8 입니다. 아약스를 사용하고 있기 때문에 전달하는 매개 변수는 url을 지원해야합니다. 문자열을 인코딩하지 않으면 호출을 무시합니다. 그리고 자바 스크립트를 사용하여 문자열을 인코딩하면 AJAX를 통해 PHP 처리 페이지로 데이터가 전송됩니다. 하지만 원래 문자열로 디코딩하려고 할 때 올바르게 디코딩되지 않습니다. – dirtycode

+1

몇 가지 예를 들어 확인 - http://stackoverflow.com/questions/4143853/utf-8-problem-when-saving-to-mysql/4143922 – ajreal

답변

1

이 같은 당신에게 무언가를 줄 것이다, 대신 escapeencodeURIComponent를 사용하여 시도 할 수 있습니다 :

%D8%A7%D9%84%D9%84... 

escape 반면이 얻을 것이다 :

%u0627%u0644%u0644%u0647... 

및 유니 코드 이스케이프는 사람을 혼동 될 수 있습니다.

+0

감사합니다, encodeURIComponent 나에게 이런 걸주세요. % D8 % A7 % D9 % 84 % D9 % 86 % D9 % 87 % D9 % 85 % 20 % D8 % A7 % D9 % 86 % D9 % 8A .... PHP에서 이것을 디코딩하는 방법 – dirtycode

+0

AFAIK urldecode (http://php.net/manual /en/function.urldecode.php), 아랍어가 무엇인지 알아 본 다음 아랍어를 데이터베이스에 넣고 나오는 것을 확인하십시오. 적어도 그러면 누가 유니 코드를 왜곡하고 있는지 알게 될 것입니다. –

관련 문제