BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C ipuçları > c_ipuc00004

C ipuçları

"Converting to execution character set: Illegal byte sequence" derleyici hatasını düzeltme

CodeBlocks IDE ortamında geliştirdiğimiz uygulamalarda, geniş karakterler (wchar_t) içinde Türkçe karakterler kullandığımızda, derleyici aşağıdaki hatayı vermektedir:

Converting to execution character set: Illegal byte sequence

Bu sorunu düzeltmek için 2 farklı yöntem kullanabiliriz:

1. Derleyici seçeneklerini değiştirmek

CodeBlocks IDE menüsünden aşağıdaki sıra ile açılan Other compiler options sekmesinde -finput-charset=latin5 değerini girmemiz yeterli olacaktır.

Project -> Build options -> Compiler settings -> Other compiler options

Yukarıdaki düzenlemeyi yaptığımızda, program dosyamızın başına #include <locale.h> satırını ekleyerek setlocale(LC_ALL, "Turkish"); işlem satırını kullansak bile, komut satırında Türkçe karakterler düzgün bir şekilde görünmez.


#include <stdio.h>
#include <locale.h> // Etkisi olmaz.

int main(void)
{
  setlocale(LC_ALL, "Turkish"); // Etkisi olmaz.

  printf("üğşçöıÜĞİŞÇÖ");

  return 0;
}

2. Unicode karakter kodu kullanmak


ş – \u015f
Ş – \u015e
ç – \u00e7
Ç – \u00c7
ı – \u0131
İ – \u0130
ö – \u00f6
Ö – \u00d6
ğ – \u011f
Ğ – \u011e
ü – \u00fc
Ü – \u00dc