2011-02-08 4 views
2

데이터베이스에서 변형 된 모든 행을 선택하려고하며 UTF8이 아닌 문자를 포함하고 있습니다 ...이 정규식이 가장 좋습니까?UTF8이 아닌 문자로 모든 행 선택

현재 저는 '%'% ''와 같은 시도를 해왔습니다. 상당히 잘 작동하지만 100 %는 그렇지 않습니다. 이 정규 표현식은 공백뿐만 아니라 'utf8'문자로 성공적으로 다시 변환되었습니다 (REGEXP '(\ S + [^ A-Za-z0-9] +)'). 최적의 경로를 정규식 경우 후자는 확실히 나갈 수있을만큼 쉬운 일이 아닙니다하고 있습니다. 선택하지

예 행은 "직경 ©", "yücel"와 "감 ¥ 버그"와 같은 문자를 포함했다.

감사합니다

답변

0

SQL 쿼리에서 표현할 수 있는지 확실하지 않습니다. 전체 데이터베이스를 반복하고 각 행이 올바른 UTF-8 데이터인지 확인하고 키를 행에 출력 할 수 있습니다. 그렇지 않습니다. PHP가 "이 바이트가 VA인지 확인하기위한 기성 함수가 있는지 확실하지 않습니다. lid UTF-8 "이지만 파이썬은 그렇지 않습니다. 나는 비슷한 문제를 안고 있었기 때문에 한 때이 일을하는 프로그램을 작성했습니다. (저는 소스 코드가 없습니다. 죄송합니다.)

주의해야 할 점 : 실수로 ISO-8859-1로 저장되고 인코딩 된 문자열이 유효한 UTF이기도합니다 -8 문자열.

MySQL에서 문자열을 처리하는 방법을 모르지만 MySQL에서 UTF-8 이외의 문자열을 UTF-8 데이터베이스에 삽입 할 수 있습니까? 예를 들어 PostgreSQL에서는 UTF-8 데이터베이스에서이 작업을 수행 할 수 없습니다.

+0

감사합니다. 이제 전체 데이터베이스를 선택하고 PHP를 사용하여 모든 UTF8 행을 표시합니다. 이는 내가 원하는 것보다 훨씬 많은 데이터를 의미하지만, 오류가있을 수있는 모든 단일 행을 확인합니다. 그것은 내가 사용한 FixUTF8 스크립트입니다. http://stackoverflow.com/questions/1401317/remove-non-utf8-characters-from-string – elyob