2012-01-30 2 views
0

Word로 웹 사이트에서 HTML로 작성한 기사를 게시하려고합니다. 기사를 HTML로 변환하고 HTML을 웹 사이트의 폴더로 전달하는 Windows 클라이언트가 있습니다. 그런 다음 IFrame에 기사를 표시하십시오. 그러나 IE9에서는 벡터 그래픽으로 변환하려고하기 때문에 이미지가 표시되지 않습니다. 나는 이것을 책임지고있는 HTML에서 코드를 제거하기로 결정했다. 그리고 여기서 나의 문제가 시작된다. 파일을 수정하고 저장 한 후에는 가비지 문자가 발생하며 웹 페이지에도 표시됩니다. 그러나 수동으로 메모장에서 파일을 편집하는 경우 + + 나는 같은 문제가 발생하지 않는다 어떻게 C#을 사용하여 html로 단어로 저장된 파일을 읽을 수 있고 이러한 가비지 문자를 얻을 수 있습니까 ?? 여기에 내 코드는C# Filestream이 단어 html을 제대로 읽지 못했습니다.

private bool AdjustHtmlPageForIE9Images(FileInfo file) 
    { 
     bool success = true; 
     try 
     { 
      string content = File.ReadAllText(file.FullName); 
      //replace [if gte vml 1] with [if gte iesucksopd 1] 
      content = content.Replace("[if gte vml 1]", "[if gte iesucksopd 1]"); 
      //replace [if !vml] with [if !iesucksopd] 
      content = content.Replace("[if !vml]", "[if !iesucksopd]"); 
      //now write the file over 
      File.WriteAllText(file.FullName, content); 
     } 
     catch (Exception ex) 
     { 

      throw ex; 
     } 
     return success; 
    } 

이며 이로 인해 일부 가비지 문자가 표시됩니다.

여기에 모든 응답을

안녕들 덕분에 나는 마침내 그것을 가고있어 응답이

안녕 얘들 아 감사를 해결하기 위해 무슨 짓을 , 나는 FF에서 열고 인코딩을 확인했고 그것은 서양되는 Windows이었다 1252이면, 읽기 및 쓰기 작업에서 SLaks sed pass GetEncoding (1252)이 수정 된 코드입니다.

private bool AdjustHtmlPageForIE9Images(FileInfo file) 
    { 
     bool success = true; 
     try 
     { 
      Encoding encoding = Encoding.GetEncoding(1252); 
      string content = File.ReadAllText(file.FullName,encoding); 
      //replace [if gte vml 1] with [if gte iesucksopd 1] 
      content = content.Replace("[if gte vml 1]", "[if gte iesucksopd 1]"); 
      //replace [if !vml] with [if !iesucksopd] 
      content = content.Replace("[if !vml]", "[if !iesucksopd]"); 
      //now write the file over 
      File.WriteAllText(file.FullName, content, encoding); 
     } 
     catch (Exception ex) 
     { 

      throw ex; 
     } 
     return success; 
    } 

는 인기가 떨어지는 유지의 IE9가 iframe에 단어에서 놀라운 일을 표시 HTML과 같은 간단한 일을 할 수 없습니다 것을 단지 말도하지 그것입니다.

+1

'throw ex'라고 쓰지 마십시오. – SLaks

+0

파일의 인코딩은 무엇입니까? – SLaks

+0

파일 인코딩을 어떻게 알 수 있습니까? – smoothe

답변

1

명시 적으로 인코딩을 ReadAllTextWriteAllText으로 전달해야합니다. 그렇지 않은 경우 기본값은 UTF8입니다.

패스 Encoding.GetEncoding(1252).

0

변환 된 html 파일이 UTF-8 또는 UTF-32로 인코딩되었는지 확인하면 ReadAllText에서 올바르게 검색합니다. 그렇지 않으면 ReadAllText 오버로드를 사용하여 변환 된 사용자가 사용하는 인코딩으로 매개 변수를 제공하십시오.

관련 문제