Как записать .ini в формате \uXXXX ? - C#
Формулировка задачи:
Я пытаюсь записать файл ini, где все нестандартные не латинские буквы в таком формате:
Вот как я это делаю:
Но в файле всегда вижу только вопросы на месте нестандартных не латинских букв. Возможно преобразовать в \uXXXX кодировку, чтоб она отображалась в 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();
Решение задачи: «Как записать .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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д