2009-08-27 6 views
2

일부 HTML 출력 파일에는 Linq to XML을 사용하고 있습니다. 무한대 기호 (∞)를 코드의 일부 테이블 셀 출력에 배치해야합니다. 이처럼 XElement를 만들었습니다.Linq to XML - 무한대 심볼을 인쇄하려고합니다.

var table = new XElement("table", 
      new XElement("tr", 
       new XElement("td", "∞") 
      ) 
     ); 

var document = new XDocument (table); document.Save (myFile);

파일을 저장할 때 ∞이 표시되지 않고 대신 &#8734이 표시됩니다. 이 번역이 어떻게 일어나지 않도록하려면 어떻게합니까?

답변

5

LINQ to XML은 올바른 작업을 수행합니다. 사용자가 내용으로 문자열을 입력하면보고 싶은 내용입니다. 그것은 당신을 위해 도망 가고 있어요. <, >& 자신을 탈출하고 싶지는 않습니다.

당신이해야 할 일은 실제 내용을 - 무한대 기호로 지정하는 것입니다.

var table = new XElement("table", 
      new XElement("tr", 
       new XElement("td", "\u8734") 
      ) 
     ); 

아니라 출력 파일의 실체, 단지 인코딩 된 문자로 나오는하지 끝낼 수 -하지만 그래서 당신이 인코딩 문제를 가지고 있지 않는 한, 괜찮을한다 : 그래서 이것을 시도 .

편집 : 이제 막 확인했는데 무한대 기호는 실제로 U + 221E이므로 대신 "\ u221e"를 원합니다. 나는 실제로 U + 8734의 의미를 알 수 없다 ... 현재 유니 코드로 정의되어 있지 않을 수도있다.

+0

LINQPad에서 무한대 기호 대신에 여기에 붙여 넣을 때 나타날 수있는 중국어 문자를 볼 수 있습니다. 蜴 –

+0

@Joel : 그래, 나도 확인해 봤어 무한대가있다. U + 221E. 편집 할 것입니다. –

+0

고마워, 오늘 이걸 시험해보고 어떻게 될지 알려줄거야. –