이것은 파일 인코딩을 변환하는 제 함수입니다. 변환 전 Notepad ++에서 파일을 열고 인코딩 메뉴를 사용하여 인코딩을 선택하면 인코딩이 UTF 8로 표시됩니다. 다음 함수를 사용하여 파일을 변환하려고 시도했지만 ASCII로 변환하지 않았습니다.
기능을 살펴보십시오.'BOM이없는'파일의 인코딩을 'Windows - 1252'인코딩 된 파일로 변경하는 방법은 무엇입니까?
public static void ConvertFileEncoding(string srcFile, Encoding srcEncoding, string tempFile)
{
try
{
using (var reader = new StreamReader(srcFile))
using (var writer = new StreamWriter(tempFile, false, Encoding.ASCII))
{
char[] buf = new char[1024];
while (true)
{
int count = reader.Read(buf, 0, buf.Length);
if (count == 0)
{
break;
}
writer.Write(buf, 0, count);
}
}
System.IO.File.Copy(tempFile, srcFile, true); // Source file is replaced with Temp file
DeleteTempFile(tempFile);
// TO DO -- Log Sucess Details
}
catch (Exception e)
{
throw new IOException("Encoding conversion failed.", e);
// TO DO -- Log failure Details
}
}
나는 윈도우 1252에 BOM하지 않고 파일을 변환 할 때 무엇을 잘못 happenes을 이해 도와주세요?
ASCII 또는 Windows-1252 중에서 원하는 것은 무엇입니까? 파일의 인코딩은 작성자에 의해 결정되지만 출력은 수많은 인코딩에 대해 동일 할 수 있습니다. (테스트 데이터가 이것에 종속되어 혼동하지 마십시오.) 독자는 작가가 사용한 인코딩을 사용해야합니다. –
유니 코드 입력 데이터에 대상 문자 집합에 포함되지 않은 문자가 포함되어 있으면 어떻게됩니까? 선택 사항 : '?'로 바꾸거나, 예외를 던지거나, 절대로 일어나지 않을 것이라고 생각하십시오. –