IT Share you

내 XML 파일에서 BOM 문자를 제거하는 방법

shareyou 2020. 11. 9. 21:35
반응형

내 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

반응형