SQL Server의 XML 열에 XML을 저장하고 있습니다. SQL Server는 데이터를 내부적으로 UTF-16에 저장합니다. 따라서 저장된 XML은 UTF-16이어야합니다.UTF8 데이터를 UTF16 열에 저장하십시오.
내가 가진 XML은 UTF-8로, 그것은 상단에이 선언이 있습니다
<?xml version="1.0" encoding="UTF-8" ?>
내가 인코딩에 대해 뭔가를 말하는 예외를 얻을 UTF-8 선언으로 XML을 삽입 할 때. 나는 쉽게 두 가지 방법으로이 문제를 해결할 수 있습니다
을
에 선언을 변경하여 선언이나
을 제거하여 :
<?xml version="1.0" encoding="UTF-16" ?>
문제
'안전한지'또는 선언을 제거하거나 바꾸는 것이 정확한지 나는 모른다. 데이터가 손실되거나 XML이 손상됩니까? 또는 C#의 문자열을 utf-8에서 utf-16으로 변환해야합니까?
당신이 이해하고 현재 이해하지 못하는 예외를 인용하는 것은 항상 좋은 생각입니다. –
파일을 텍스트로 저장 한 다음 텍스트로 저장합니다 (예 : 보편적 인코딩 사용). 물론 인라인 인코딩 선언을 제거해야합니다. 나는 그러한 것들을 제거 할지라도 얼룩으로 그들을 저장하고 싶을 뿐이다. – Joey
SQL Server는 UTF-16이 아니라 UCS-2로 내부적으로 데이터를 저장합니다. 이것은 UTF-16 서로 게이트 쌍을 사용하는 경우에만 중요합니다. –