내가 MySQL의 오류가있어 내 DB에 값을 삽입 할 때 : 내가 PDO 내가 삽입하기 위해 노력하고있어 데이터와 젠드 프레임 워크 1.10를 사용하고방지 MySQL의 일반 오류 : 1366 잘못된 문자열 값
General error: 1366 Incorrect string value: '\xE4ngen....' for ....
을 는 UTF8의 XML 파일에서 파싱됩니다. MySQL은 5.6.14입니다.
I했습니다 또한 내 MySQL 데이터베이스, 테이블 및 열 정렬을 확인하고는 다음과 같습니다
- 데이터베이스 : utf8_unicode_ci
- 열 :
- 테이블 latin1_general_ci으로 utf8_unicode_ci
내 입력은 XML 파일에서 나온다. 파일이 유효한지 확인하기 위해 iconv를 실행했다. utf8 : iconv -f UTF-8 파일 -o/dev/null 및 모든 것이 정상적으로 보이지만 fr이 오기 때문에이 XML을 정말로 신뢰할 수 없다. 내가 통제하지 않는 외부 소스.
내가 원하는 것은 모든 것을 UTF8 OK이고 어떤 인코딩 문제가있는 경우를 대비하여 MySQL에 데이터를 가져올 수 있도록이 문제를 처리하는 안전한 방법입니다 ... 어떻게 "방탄 "PHP에서이 데이터를 읽고 mysql에 삽입하는 방법?
예외를 던지고 있습니까? 아니면 잘못된 인코딩을 꼭 수정해야합니까? – lxg
정확 : 꼭 해결해야합니다. 소스를 신뢰할 수 없기 때문에 소스를 신뢰할 수 없으며 일부 소스는 괜찮습니다. 일부는 실제로 코드를 작성해야합니다. 가져온 데이터에 "이상한 문자"가 나타나는 문제가 있더라도 여전히 더 좋습니다. 데이터를 가져올 수없는 오늘날보다 – AlfaTeK
음, 그럼 내가 너를 부러워하지 않아. 임의의 인코딩을 감지하고 적절히 변환하는 것은 재미있는 일입니다. – lxg