문제

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");
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top