SQL * Loader를 사용하여 데이터를로드하는 동안 Perl 스크립트를 사용하여 조작 된 UTF-8 문자를 찾아 공백으로 대체하려고합니다. 어떻게해야합니까?형식이 잘못된 UTF 문자를 감지하는 방법
10
A
답변
1
편집 : (SQL 로더에 대한 제거 비트는 더 이상 관련이 없을 것 같은.)
하나의 문제는 잘못된 UTF-8 문자의 "끝"으로 간주 어떤 작업을 될 것입니다. 불법적 인 내용은 쉽게 말할 수 있지만, 다음 법적 성격이 시작되는 곳은 분명하지 않을 수 있습니다.
1
RFC 3629은 UTF-8 문자의 구조를 설명합니다. 그 점을 살펴보면 잘못된 문자를 찾는 것이 매우 쉽다는 것을 알 수 있습니다. 다음 문자 경계는 항상 쉽게 찾을 수 있습니다 (문자는 < 128이거나 "긴 문자"시작 마커 중 하나임) 110 비트, 1110 비트, 또는 11110 비트).
BKB가 아마도 정확할 것입니다. 가장 쉬운 대답은 perl이 필터를 사용하여 잘못된 utf-8을 발견했을 때 Perl이 무엇을하는지 확신 할 수는 없지만 perl이 대신 해 주도록하는 것입니다.
4
파이썬을 고려하십시오. 사용자 정의 오류 처리기로 코덱을 확장 할 수 있으므로 코드화 할 수없는 바이트를 원하는 것으로 바꿀 수 있습니다.
import codecs
codecs.register_error('spacer', lambda ex: (u' ', ex.start + 1))
s = 'spam\xb0\xc0eggs\xd0bacon'.decode('utf8', 'spacer')
print s.encode('utf8')
이 인쇄 : 다음 문자가 시작되는 찾기
spam eggs bacon
관련 문제
- 1. XML 데이터가 유효한 UTF-8인지 확인하고 잘못된 문자를 감지하는 방법은 무엇입니까?
- 2. DataGridViewCell에서 형식이 잘못된 데이터 입력을 방지하는 방법
- 3. log4j가 잘못된 문자를 인쇄합니다.
- 4. 형식이 잘못된 출력 (Python)
- 5. 형식이 잘못된 URL 예외
- 6. IFRAME의 문서 형식이 잘못된 경우 검색합니다.
- 7. XSS의 형식이 잘못된 태그를 방지하는 방법
- 8. 잘못된 키를 입력했는지 감지하는 방법 <input>?
- 9. file_get_contents() UTF-8 문자를 분리합니다.
- 10. 형식이 잘못된 레일 JSON 및 jQuery
- 11. HtmlAgilityPack 형식이 잘못된 html 문제가 있습니다.
- 12. "텍스트 내용에 잘못된 문자가 있음"을 감지하는 방법
- 13. 목표 C : 형식이 잘못된 XML을 구문 분석
- 14. WinAPI에서 불완전 멀티 바이트 문자를 감지하는 방법은 무엇입니까?
- 15. perl : 잡히지 않는 예외 : JSON 문자열의 형식이 잘못된 UTF-8 문자
- 16. BaseInlineFormSet이 잘못된 문자를 지우지 않습니다
- 17. Vim에서 cp1250 특정 문자를 utf-8로 대체하는 방법
- 18. NetBean 6.9.1의 XML 파일에 UTF-8 문자를 쓰는 방법
- 19. 형식이 잘못된 URI를 수정하기위한 스칼라 또는 Java 라이브러리
- 20. 형식이 잘못된 HTML 및 XPath 쿼리
- 21. WPF 형식이 잘못된 URI가있는 XPS 문서보기
- 22. SVN "형식이 잘못된 파일"손상된 저장소
- 23. Perl에서 형식이 잘못된 HTML은 어떻게 처리합니까?
- 24. JPS 명령 오류 : 형식이 잘못된 호스트 식별자
- 25. HTML DOM에서 읽기가 UTF-8 문자를 반환합니다.
- 26. 멀티 바이트 문자를 UTF-8로 변환
- 27. UTF-8 문자를 WCF 서비스로 보내기
- 28. 자바에서 16 진수 UTF-8 문자를 제거하시오.
- 29. UTF-8 문자를 어떻게 인쇄합니까? C++?
- 30. xml 파일에서 잘못된 문자를 어떻게 제거합니까?
은 간단합니다 - 즉, UTF-8의 디자인에 대한 아주 멋진 것들 중 하나입니다. http://tools.ietf.org/html/rfc3629 –
올바른 형식의 UTF-8 만 쉽게 사용할 수 있습니다. 중복되는 리드 바이트가 삽입되었다고 상상해보십시오. 첫 번째 발생을 건너 뛰어야합니다. UTF-8 규칙을 따랐 으면 다음 문자는 선두 바이트가 복제 된 문자의 마지막 바이트로 시작하는 것처럼 보입니다. – MSalters
@MSalters : 그건 내가 생각하고있는 종류의 것이지만, 나 자신만으로는 충분하지 않다. :) –