잘못된 문자열 값 오류로 인해 응용 프로그램이 임의의 전자 메일을 삭제하는 경향이 있음을 알았지 만 많은 문자 열을 utf8
열 문자 세트와 기본 열 콜 레이션 ( utf8_general_ci
) 을 사용하도록 전환 하여 허용했습니다. 이로 인해 대부분의 오류가 해결되었으며 비 라틴 전자 메일에 부딪히면 응용 프로그램에서 SQL 오류가 발생하지 않습니다.
그럼에도 불구하고 일부 이메일은 여전히 프로그램이 잘못된 문자열 값 errrors에 도달하도록합니다. (Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)
내용 열은 열 문자 MEDIUMTEXT
집합과 열 조합을 사용 하는 데이터 형식입니다 . 이 열에서 토글 할 수있는 플래그가 없습니다.utf8
utf8_general_ci
절대적으로 필요한 경우가 아니면 응용 프로그램 소스 코드를 만지거나 보지 않으려는 것을 명심하십시오.
- 그 오류의 원인은 무엇입니까? (예, 이메일에 임의의 쓰레기가 가득 차 있다는 것을 알고 있지만 utf8은 꽤 관대하다고 생각했습니다)
- 어떻게 고칠 수 있습니까?
- 그러한 수정의 영향은 무엇입니까?
내가 생각한 것 중 하나는 바이너리 플래그를 켜고 utf8 varchar ([일부 큰 숫자])로 바꾸는 것이지만 MySQL에 익숙하지 않으며 그러한 수정이 의미가 있는지 전혀 모른다.