C # Сохранить файл с корейской кодировкой - PullRequest
2 голосов
/ 08 июля 2011

Имеет следующий кодовый блок, который сохраняет файл с выбранной кодировкой. Когда файл открывается в текстовом редакторе, он показывает кодировку в виде ASCII ..

StringBuilder sb = new StringBuilder();
sb.Append(); // Lots of korean text here

Encoding enc = Encoding.GetEncoding(51949);
using (StreamWriter sw = new StreamWriter(fileName, false, enc))
{
    sw.Write(sb.ToString());
sw.Flush();
sw.Close();
}

Кто-нибудь может помочь?

Спасибо

Ответы [ 4 ]

1 голос
/ 08 июля 2011

Попробуйте заменить </p> <p>Encoding enc = Encoding.GetEncoding(51949);

с Encoding enc = Encoding.Unicode;

или Encoding enc = Encoding.UTF8;

1 голос
/ 08 июля 2011

Вы должны использовать UnicodeEncoding при сохранении файла, а для Unicode Encoding - это приведенный ниже код и изменить его в соответствии с вашими потребностями. попробуйте это:

 UnicodeEncoding unicode = new UnicodeEncoding();

        // Create a string that contains Unicode characters.
        String unicodeString =
            "This Unicode string contains two characters " +
            "with codes outside the traditional ASCII code range, " +
            "Pi (\u03a0) and Sigma (\u03a3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(unicodeString);

        // Encode the string.
        Byte[] encodedBytes = unicode.GetBytes(unicodeString);
        Console.WriteLine();
        Console.WriteLine("Encoded bytes:");
        foreach (Byte b in encodedBytes) {
            Console.Write("[{0}]", b);
        }
        Console.WriteLine();

        // Decode bytes back to string.
        // Notice Pi and Sigma characters are still present.
        String decodedString = unicode.GetString(encodedBytes);
        Console.WriteLine();
        Console.WriteLine("Decoded bytes:");
        Console.WriteLine(decodedString);
1 голос
/ 08 июля 2011

Когда файл открывается в текстовом редакторе, кодировка отображается в виде ASCII.

В файле нет ничего, что сообщало бы текстовому редактору кодировку.

Вам нужно каким-то образом предоставлять метаданные.Либо заставив пользователя использовать некоторую опцию «открыть с выбранной кодировкой» в текстовом редакторе (если он есть), либо использовать другую кодировку в файле (например, UTF-8 или -16 с спецификацией), которая включает в себякодовые точки, которые вам нужны, и текстовый редактор может их обнаружить.

0 голосов
/ 08 июля 2011

Вы должны использовать Encoding.Unicode - поэтому выходные данные будут включать спецификацию и будут закодированы в многобайтовом Unicode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...