Monday, May 30, 2016

How to maintain French characters in various document type read and write operation?

when i need to implement a console app to read and write the french characters in different document type, such as html, txt, and rtf.

since i uses the  File.ReadAllText method to load the content into Memory, if i use the ReadAllText method without the Encoding parameters. the french content will be unable to maintained. it will cause the output of write operation with some weird characters.

string fileContent = File.ReadAllText(signatureTemplateFileName, Encoding.Default);

after the content was loaded, then the content will be wrtie to a new file based on the file format.

for HTML file, we should use Unicode Encoding

 using (FileStream fs = File.Open(signatureFileName, FileMode.Create, FileAccess.Write, FileShare.None))
            {
                using (StreamWriter writer = new StreamWriter(fs, Encoding.Unicode))
                {
                    writer.Write(fileContent);
                }
            }


for RTF file, we should use Default Encoding

 using (FileStream fs = File.Open(signatureFileName, FileMode.Create, FileAccess.Write, FileShare.None))
            {
                using (StreamWriter writer = new StreamWriter(fs, Encoding.Default))
                {
                    writer.Write(fileContent);
                }
            }


for TXT file, we should use Unicode Encoding


 using (FileStream fs = File.Open(signatureFileName, FileMode.Create, FileAccess.Write, FileShare.None))
            {
                using (StreamWriter writer = new StreamWriter(fs, Encoding.Unicode))
                {
                    writer.Write(fileContent);
                }
            }


No comments:

Post a Comment