내 XML 파일에서 BOM 문자를 제거하는 방법
이 질문에 이미 답변이 있습니다.
xsl을 사용하여 xml 파일의 출력을 제어하고 있지만 BOM 문자가 추가되고 있습니다.
# vim file.xml
:set nobomb
:wq
파일 BOM 감지기 (Windows 용 프리웨어) 쉽게 바이트 순서 표시를 제거 할 수 있습니다.
xslt 파일에 다음을 추가하면됩니다.
<xsl:output method="text"
encoding="ASCII"/>
16 진 편집기를 사용하여 처음 2 바이트를 제거하십시오.
XSLT를 사용하여 문자열에서 BOM 기호를 제거하는 것은 매우 간단합니다.
<xsl:value-of select="translate(StringWithBOM,'','')"/>
나는 XML이 일부 유니 코드 인코딩으로 유니 코드로 작성되도록 권장되고 특정 유니 코드 인코딩이 초기 바이트 순서 표시를 포함하도록 지정되어 있다는 인상을 받았습니다. 바이트 순서 표시가 없으면 파일이 더 이상 유니 코드 인코딩으로 올바르게 인코딩되지 않으므로 더 이상 올바른 XML이 아닙니다. XML 프로세서는 사소한 오류 (예 : 잘못된 유니 코드 인코딩)에 즉시 실패하도록 용서하지 않는 것이 좋습니다. 어떤 종류의 XML 프로세서를 중단하려고합니까?
당연히 UTF-8 인코딩 문서에서 바이트 순서 표시를 제거하면 해당 문서가 ASCII 인코딩 (유니 코드 아님)으로 표시되고 일부 텍스트 프로세서는 ASCII 인코딩 문서 만 사용할 수 있습니다. 이것이 당신이 함께 일하는 것입니까?
XSL이 사용하도록 설정된 출력 인코딩은 무엇입니까? 입력 문서는 어떤 인코딩입니까? 입력은 어디에서 왔으며 그 동안 어디에 저장 / 업로드 / 다운로드 되었습니까?
XML 및 XSL 은 지정되지 않은 경우 기본적 으로 UTF-8을 사용해야합니다. 그러나 분명히 여기서 뭔가 잘못되고 있습니다.
한 가지 일어날 수있는 일은 XML이 기본적으로 ISO-8859-1에서 제공되도록 설정된 웹 서버에 의해 제공되고 있다는 것입니다. 이는 꽤 좋은 기본 ... pre-Unicode입니다.
약간 주제에서 벗어 났지만 텍스트 인코딩에 대한 Joel의 매우 유익한 기사 는 저에게 눈을 뜨게했습니다. 프로그래밍에 대해 매우 똑똑하지만 "일반 텍스트"또는 "ASCII"또는 "ANSI"라는 텍스트와 같은 것이 있다고 계속 생각하는 사람들이 많이 있습니다. 아직 이해하지 못했다면 정말 이해해야 할 문제입니다.
참고 URL : https://stackoverflow.com/questions/295472/how-do-i-remove-the-bom-character-from-my-xml-file
'IT Share you' 카테고리의 다른 글
부트 스트랩 3 : navbar에서 드롭 다운 링크의 헤드를 클릭 할 수있게 만드는 방법 (0) | 2020.11.09 |
---|---|
자바 8 : 스트림 API로 목록 병합 (0) | 2020.11.09 |
INSERT INTO .. ON DUPLICATE KEY UPDATE for multiple items (0) | 2020.11.09 |
XOR이 암호화에 사용되는 이유는 무엇입니까? (0) | 2020.11.09 |
TeamCity 웹 서버용 포트 변경 (0) | 2020.11.09 |