2009-08-29 4 views
2

모든 문자 인코딩 문제를 해결하는 원 스톱 솔루션이 있습니까? 난 항상 사용자 입력, 데이터베이스 저장소 및 데이터 검색 (HTML 양식 사이의 줄을 따라 문제가있는 것 같습니다. 모든 데이터 및 웹 페이지를 UTF-8로 인코딩해야하지만 항상 잘못된 UTF로 끝나는 것 같습니다. 8 문자 어딘가.램프 스택/사용자 입력 및 문자 인코딩

나는 문자 인코딩에 너무 열중하고 있지 않지만 프랑스어 문자로 작업하기 시작한 이래로 나는 영원히 문제를 겪고있다. 다른 개발자 중 하나는 데이터베이스에 보내기 전에 모든 것을 urlencode하고 나서 urldecodes

내가 이해하는 것처럼, html 양식은 사용자 환경에 따라 모든 문자를 사용할 수 있으며 UTF-8 또는 무엇이든간에 변환을 시도하는 것은 서버 측의 책임입니다.

추가 정보를 제공해 주시면 대단히 감사하겠습니다.

답변

1

전체에 UTF-8을 사용하면 원 스톱 솔루션입니다. 불행하게도 실제로 발생하는 문제를 이해하는 데 도움이됩니다. 특정 문제가있는 경우 SO에 특정 질문을 게시하십시오.

Wrt. HTML 양식 : 아니요, 실제로 사용자 환경에 달려 있지 않습니다. 브라우저는 양식이 발생한 페이지와 동일한 인코딩으로 데이터를 전송합니다 (또는 실제로해야합니다). 사용자에게 보내는 모든 HTML 페이지에 HTTP Content-type 헤더에 charset = 필드가 있는지 확인하십시오. 좋은 측정을 위해 HTML 파일 자체에 http-equiv 메타 태그를 넣습니다 (사용자가 HTML 페이지를 캐시하거나 저장 한 경우 도움이 됨). 따라서 HTML 페이지가 UTF-8 일 때 브라우저가 보낸 데이터는 UTF-8이기도합니다. 내 프로젝트 내 데이터베이스로 전송되는 첫 번째 쿼리에서

+0

사용자 양식 입력과 관련된 회색 영역을 지워 주셔서 감사합니다. – brndnmg

0

SET 명칭 'UTF8'이다;

MySQL 연결을 설정하기 만하면됩니다.

데이터 덤프에도 동일합니다. .sql 파일에 데이터베이스 덤프를 수행 할 때 위의 쿼리를 처음에 삽입합니다.

많은 호스팅 회사 및 전용 서버에서 몇 년 동안 문제없이 사용할 수 있습니다.

+0

테이블의 데이터 정렬이 "utf8_general_ci"라고 가정합니다. – brndnmg

+0

당신이 사용하는 언어에 따라 다릅니다. 예를 들어 폴란드에서 내 앱을 개발 중이므로 폴란드어 알파벳이 액센트 문자 (±, ę, ć, ł, ó 등)로 구성되어 있기 때문에 utf8_polish_ci를 사용하므로 MySQL에서 텍스트 데이터를 정렬 할 때, L은 L 다음에옵니다. – astropanic