APK hataları

C#'ta ə harfi soru işareti olur

Azerbaycan Windows'unda eski metin tablosu çoğu zaman 1254'tür. Bu, Türkçe tablodur. İçinde ü, ö, ş, ğ, ç, ı vardır. ə yoktur. Encoding.GetEncoding(1254) o harfi saklayamaz ve yerine ? koyar.

Dosyayı ve konsolu UTF-8 yap. 1254 yazma.

  • Dosyayı şöyle yaz: File.WriteAllText("metn.txt", "Azərbaycan", new UTF8Encoding(true)).
  • Encoding.GetEncoding(1254) ve Encoding.Default yazma. Orada ə yoktur.
  • Konsolda kare görüyorsan önce Console.OutputEncoding = Encoding.UTF8 koy.
  • Eski csc kaynağı sistem tablosuyla okur. .cs dosyasını UTF-8 BOM ile kaydet.
  • Harf çoktan ? olduysa kod onu geri getirmez. Metni yeniden yaz.
using System.Text;

Console.OutputEncoding = Encoding.UTF8;
File.WriteAllText("metn.txt", "Azərbaycan", new UTF8Encoding(encoderShouldEmitUTF8Identifier: true));

İlgili rehberler