-
22-07-2019 - |
문제
PHP로 제작 된 작은 Ajax 응용 프로그램이 있습니다.
phpmyadmin을 사용하여 MySQL 데이터베이스를 UTF-8로 설정하고 UTF-8 데이터를 포함하는 텍스트 파일을 가져 왔습니다.
이것은 easyphp가있는 Windows 시스템에서 잘 작동했습니다. easyphp = utf8 및 default-character-set = utf8을 my.cnf 파일에 추가 한 후.
이제 구성 파일에 액세스 할 수없는 프로덕션 서버로이를 이동하려고했으며 Umlauts와 같은 문자가 표시되지 않습니다.
이 문제를 해결하기 위해 PHP 코드 (구성 파일이 아님)에 설정할 수있는 것이 있습니까? 아니면 MySQL에 제공 할 수있는 명령이 있습니까?
Alter 데이터베이스를 시도했습니다 vweb_50
기본 문자 세트 UTF8은 utf8_general_ci에서 시도하기 위해 utf8_bin을 phpmyadmin과 충돌하지만 차이가 없었습니다.
해결책
여기에해야 할 일이 몇 가지 있으며, 귀하의 문제를 정확하게 이해하는지 확신하지 못하지만, 그렇게한다면 대부분의 경우 PHP 기능으로 해결할 수 있다고 생각합니다. utf8_encode 그리고 UTF8_DECODE:
- utf8_encode
- ISO-8859-1 문자열을 UTF-8로 인코딩합니다
- UTF8_DECODE
- 이 함수는 UTF-8 인코딩 된 것으로 가정 된 데이터를 ISO-8859-1로 디코딩합니다.
또한 조사하십시오 htmlentities 필요한 경우.
다른 팁
응용 프로그램 전체에서 UTF-8을 사용하는 경우 (권장하는 경우) UTF8_encode/Decode 함수가 필요하지 않습니다. 어떤 페이지를 인코딩하는지 확인 했습니까? 아마도 서버는 ISO-8859-1을 숯으로 보내는 반면 테스트 환경은 UTF-8을 보냅니다. 컨텐츠 유형 헤더로 인코딩을 설정하십시오.
header("Content-Type: text/html; charset=utf-8");