안녕하세요 저는 utf8로 파일을 변환하기 위해 vb.net에서 간단한 콘솔 응용 프로그램을 만들고 있지만 인코딩과 함께 작동하는 방법을 알 수는 없습니다 . 나는 원본 파일이 유니 코드에 있다는 것을 알고 있지만, 새로운 형식으로 변환하면 나는 쓰레기가된다. 어떤 제안? 내 코드가 맞는지 확실하지 않습니다.모든 유형의 CSV 파일을 UTF-8로 변환
이것은 내 코드입니다.
안녕하세요 저는 utf8로 파일을 변환하기 위해 vb.net에서 간단한 콘솔 응용 프로그램을 만들고 있지만 인코딩과 함께 작동하는 방법을 알 수는 없습니다 . 나는 원본 파일이 유니 코드에 있다는 것을 알고 있지만, 새로운 형식으로 변환하면 나는 쓰레기가된다. 어떤 제안? 내 코드가 맞는지 확실하지 않습니다.모든 유형의 CSV 파일을 UTF-8로 변환
이것은 내 코드입니다.
에서는 StreamReader는 파일의 인코딩을 알고 있다면 당신은 당신이 파일이있는 코멘트에 말을 위해 StreamReader
의 생성자objReader = New StreamReader(filepath, Encoding.UTF32)
에 그것을 통과해야 인코딩을 소요 constructor있다 Wikipedia
에서 UCS-2로 인코딩 된 오래된 UCS-2 (2 바이트 범용 문자 세트) 비슷한 문자는 EN 코드 번호는 유니 코드 표준의 버전 2.0에서 UTF-16으로 대체되었습니다. 2 으로 고정 길이 형식을 생성하기 만하면 코드 포인트를 16 비트 코드 단위로 사용하고 과 정확히 같은 결과를 생성합니다. UTF-16은 에있는 모든 코드 포인트의 96.9 %를 나타냅니다. 범위는 0 ~ 0xFFFF이며 그 때 값이 할당 된 모든 문자를 포함합니다.
경우에 당신은 참고 유니 코드를 포함하여 인코딩에서의 숙박을 제공 표준이 너무
objReader = New StreamReader(filepath, Encoding.Unicode)
을 시도 UTF-16 System.Text.Encoding에서 유니 코드를 호출하여 디코딩을 시도 할 수
는, UTF-16은 유니 코드에 대해 하나의 인코딩이 가능합니다.
나는 아직도 쓰레기가된다. – themis
StreamReader는 생성자 호출에서 지정하지 않으면 이미 utf-8 인코딩을 사용합니다. 그래서 utf-8로 다시 인코딩하면 문제가 해결되지 않습니다. StreamReader (String, Encoding) 오버로드를 사용하고 파일을 만들 때 사용 된 인코딩을 지정합니다. Ending.Default가 가장 좋은 추측입니다. .csv 파일 작성자를위한 코드를 작성한 프로그래머에게 이야기하십시오. 네가 맞으면 더 이상이 코드가 필요 없어.
이것은 내가 지금하고있는 것입니다. objReader = 새로운 StreamReader (파일 경로, Encoding.UTF8) strContents = objReader .ReadToEnd() '파일을 닫습니다 objReader.Close() 은'DOS Console.WriteLine (strContents) Console.WriteLine ("") 새로운 System.IO.StreamWriter으로 희미한 objWriter (filepath.Replace에 내용을 쓰기objWriter.WriteLine (strContents) objWriter.Close() Console.WriteLine ("인코딩 완료 됨") 하지만 여전히 junk가 있습니다. – themis
파일이 utf-8로 인코딩되지 않았 음을 이미 알고 있습니다. 따라서 생성자 호출에서 Encoding.UTF8을 사용하지 마십시오. –
유니 코드는 _specification_이며 인코딩이 아닙니다. 소스 파일에서 사용하는 인코딩은 무엇입니까? UTF-8? UTF-16? UCS2? ... – fge
UTF-8도 유니 코드입니다 :-) 나는 입력 파일을 UTF-16이라고 생각합니까? –
나는 혼란 스럽다 : S 유니 코드는 구체화이다. UTF-8 인코딩이지만 UTF-8도 유니 코드입니다. 지금까지 모든 것을 혼합했습니다. – themis