인코딩을 us-ascii에서 utf-8로 변환 할 수 없습니다. 무슨 짓이야?


2

웹 페이지가 외국어로 렌더링되는 가비지 문자를 디버깅하려고합니다. utf-8에서 createpage.php를 원합니다.

me@host:/www/webroot$ file -bi createpage.php
text/x-php; charset=us-ascii
me@host:/www/webroot$ iconv -f us-ascii -t utf-8 createpage.php > createpage_utf8.php
me@host:/www/webroot$ file -bi createpage_utf8.php
text/x-php; charset=us-ascii

나는이 rwx디렉토리에 permessions을 rw파일에. 나는 눈이 멀어 야한다-여기서 무엇을 망쳐 놓고 있는가? ascii는 utf-8의 하위 세트이며 내 PHP에는 특수 문자 (ini 파일 만 있음 include)가 없으므로 file -biascii를보고 하기 때문에 입니까?

답변:


2

7 비트 ASCII 문자는 UTF8에서 일대일로 맵핑되므로 일반 ASCII 문자 만 사용하는 파일은 UTF8과 구별 할 수 없습니다. 따라서 "전환"은 아무 것도하지 않습니다.


글쎄, 나는 약간 바보 같은 느낌이 든다. 내 문제는 PHP의 PDO 모듈에 있다고 생각합니다. 모든 테이블이 UTF-8로 인코딩되어 있기 때문입니다. 답변 해 주셔서 감사합니다.
에셔

예를 들어 구성 줄을 추가하여 웹 서버에서 내용이 UTF-8로 인코딩되어 있는지 확인하십시오.AddDefaultCharset UTF-8
wurtel

$db->exec("SET CHARACTER SET utf8");데이터베이스에 대한 PDO 연결을 연 후 바로 도움이 될 수 있습니다 mysql.
wurtel

모든 관련 테이블은 이미 utf8이고 웹 서버는 http 헤더와 마찬가지로 utf8로 설정되었습니다. charset=utf8PDO 객체를 인스턴스화 할 때 인수를 잊어 버린 것으로 나타났습니다 .
Escher
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.