Как записать .ini в формате \uXXXX ? - C#

Узнай цену своей работы

Формулировка задачи:

Я пытаюсь записать файл ini, где все нестандартные не латинские буквы в таком формате:
Русский = \u0420\u0443\u0441\u0441\u043A\u0438\u0439 Français = \u0046\u0072\u0061\u006E\u00E7\u0061\u0069\u0073\u0020 中國 = \u4E2D\u570B 日本の = \u65E5\u672C\u306E العربية = \u0627\u0644\u0639\u0631\u0628\u064A\u0629
Вот как я это делаю:
        StreamWriter writer = new StreamWriter(@"test.ini", false, Encoding.ASCII);           
            writer.Write(data);
            writer.Close();
Но в файле всегда вижу только вопросы на месте нестандартных не латинских букв. Возможно преобразовать в \uXXXX кодировку, чтоб она отображалась в ini?

Решение задачи: «Как записать .ini в формате \uXXXX ?»

textual
Листинг программы
#define KOLOTUR
 
using System;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        private const int MAX_ITERS = 5000;
        private static string CASE = "Теперь я вижу снова кириллицу в файле ini, вместо вопросов или \\uXXXX кодировки.";
 
        private string PrepareSpeciment(string originalText)
        {
            StringBuilder sb = new StringBuilder();
 
            for (int i = 0; i < MAX_ITERS; i++)
            {
                sb.Append(originalText); 
            }
 
            return sb.ToString();
        }
 
#if KOLOTUR
        private string Encode(string s)
        {
            if (string.IsNullOrEmpty(s) || s.All(c => c < 128))
                return s;
 
            var buffer = new StringBuilder(s.Length * 6);
            foreach (int c in s)
                buffer.AppendFormat(@"\u{0:X4}", c);
 
            return buffer.ToString();
        }
#endif
 
#if KLIEVE
        private string Encode(string s)
        {
            return string.Join("", s.Select(c => "\\u" + ((int)c).ToString("x4")));
        }
#endif
 
        private void Run()
        {
            string spec = PrepareSpeciment(CASE);
            Console.WriteLine(Encode(spec).Length);
        }
 
        static void Main(string[] args)
        {
            new Program().Run();          
 
            Console.WriteLine("DONE");
            Console.ReadKey();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы