mysql에서 postgresql로 db를 마이그레이션하고 있습니다. mysql db의 기본 데이터 정렬은 UTF8이고 postgres는 또한 UTF8을 사용하며 pg_escape_string()을 사용하여 데이터를 인코딩합니다. 어떤 그러나 이유로, 나는 나쁜 인코딩에 대한 몇 가지 펑키 오류로 실행 해요 :PostgreSQL + PHP + UTF8 = 인코딩을위한 바이트 시퀀스가 올바르지 않습니다.
pg_query() [function.pg-query]: Query failed: ERROR: invalid byte sequence for encoding "UTF8": 0xeb7374 HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client"
내가 주위를 파고 이것을 알아 내기 위해 노력했습니다, 그리고 PHP는 이상한 일을하고있는 것으로 나타났습니다; 문자열에 ascii 문자 만 있으면 (예 : "hello") 인코딩은 ASCII입니다. 문자열에 ASCII 문자가 아닌 문자가 포함되어 있으면 인코딩이 UTF8 (예 : "Hëllo")이라고합니다.
이미 UTF8 인 문자열에 utf8_encode()를 사용하면 특수 문자가 삭제되어 모든 문자가 엉망이됩니다.이 기능을 사용하려면 어떻게해야합니까?
은 BTW
이것으로 몇 시간을 보냈다. 실제로 mysql이 non-utf8 문자열을 db에 허용했다고 생각하기 시작했다. 문제의 원인은 .. – Ian