C# BinaryWriter 및 BinaryReader 클래스를 사용하여 이진 파일을 작성하고 읽으려고합니다. 문자열을 파일에 저장할 때 올바르게 저장하고 있지만 읽으려고하면 문자열 내의 모든 대체 위치에 '\ 0'문자가있는 문자열이 반환됩니다.C#의 BinaryReader는 문자열의 모든 문자 사이에서 ' 0'을 읽습니다.
public void writeBinary(BinaryWriter bw)
{
bw.Write("Hello");
}
public void readBinary(BinaryReader br)
{
BinaryReader br = new BinaryReader(fs);
String s;
s = br.ReadString();
}
여기 값지고로서 S = "H \ 0E \ 0리터 \ 0리터 \ 0o에서 \ 0": 여기
코드이다.
[모든 소프트웨어 개발자가 절대적으로 최소로 절대적으로, 절대적으로 유니 코드와 문자 집합에 대해 알아야합니다 (변명의 여지가 없습니다!)] (http://joelonsoftware.com/articles/Unicode.html) – GSerg
문자 인코딩을 고려해야합니다 @CSerg가 지시 했으므로. .NET의 모든 문자열은 여러 스크립트 (로마자, 일본어, 히브리어 등)를 지원하는 UTF8 인코딩 (문자 당 2 바이트)을 사용합니다. – wdosanjos