2009-02-04 5 views
2

사용자가 RSS 피드 등을 사용하여 다양한 소스에서 정보를 가져올 수있는 레일 애플리케이션이 있습니다. 데이터베이스의 기본 인코딩은 UTF8이며, UTF8이 아닌 데이터가 시스템을 통해 들어오고 데이터베이스에 충돌하면 많은 예외가 발생했습니다.내 Rails 애플리케이션에서 UTF8이 아닌 콘텐츠를 적절하게 전달

is_utf8을 사용하여 비 UTF8 데이터를 적절하게 감지합니까? 메서드를 저장하기 전에 특성에 대한,하지만 그것을 처리 할 수있는 방법을 생각해 내지 않았습니다. 변환 할 iconv를 본 적이 있지만 변환 할 인코딩의 종류를 결정할 수 있어야합니다.

추측 변환을 수행하거나 비 UTF8 문자를 제거한 다음 데이터베이스에 저장하는 간단한 방법이 있습니까?

감사합니다.

답변

1

비 UTF-8 데이터로 시스템에 입력하는 방법은 무엇입니까? 모든 페이지가 Content-Type text/html; charset = utf-8로 제공되고 브라우저가 항상 UTF-8 데이터를 양식에 제출해야합니다.

(물론 여전히 메일 및 업로드 된 파일이 남지만 특정 컨텍스트가 많을 경우 종종 인코딩 할 수 있습니다.)

1

아이콘 인코딩을 전환 할 때 Iconv는 여러분의 친구입니다. 인코딩을 탐지하기 위해 사용할 수있는 작은 보석이 있습니다 : rchardet 우리는 이것을 사용하여 스팸을 차단하기 위해 아시아 인코딩을 탐지했으며 정상적으로 작동했습니다.