my $s = "r\x{e9}sum\x{e9}";
$s
için "résumé"
atamak söyleyebiliriz. Ben Özellikle C. benzer bir şey yapmak istiyorum, ben
sometype_that_can_hold_utf8 c = get_utf8_char();
if (c < '\x{e9}') {
/* do something */
}
my $s = "r\x{e9}sum\x{e9}";
$s
için "résumé"
atamak söyleyebiliriz. Ben Özellikle C. benzer bir şey yapmak istiyorum, ben
sometype_that_can_hold_utf8 c = get_utf8_char();
if (c < '\x{e9}') {
/* do something */
}
, kendinizi bulundu kuralları kullanarak kodlama üretmek zorunda örneğin, here. Örneğin, Alman keskin s (ß, kod noktası 0xdf), 0xc3,0x9f kodlayan UTF8'e sahiptir. E-acute (é, kod noktası 0xe9), 0xc3,0xa9'luk bir UTF8 kodlamasına sahiptir.
Ve ile dizelerinde keyfi altıgen karakterleri koyabilirsiniz: Kullanmak bir C99 derleyicisi varsa
char *cv = "r\xc3\xa9sum\xc3\xa9";
char *sharpS = "\xc3\x9f";
wchar_t'den Aradığınız türüdür söylemek istiyorum: UTF8 için http://opengroup.org/onlinepubs/007908799/xsh/wchar.h.html
$ /usr/bin/gcc -std=c99 -pedantic -Wall wc.c
soruda unix etiketi olmadığı için. – paxdiablo
AS ASCII metninde é işleminin nasıl yapıldığına daha çok ilgileniyorum, Perlimde "\ x {e9}" 'ifadesini kullanarak yapabilirim. Sorun, kaynağın ASCII olduğu, ancak UTF-8 karakterleri oluşturması gerektiğidir. –
@Chas: Neden kaynak dosya kodlaması olarak bir UTF-8 kullanmıyorsunuz? Çoğu derleyicide, çokbaytlı diziler yalnızca dize değişmezlerinde olduğu sürece herhangi bir problem yaşanmamalı. – Christoph
<wchar.h> (ve <locale.h>) ve Unicode kodunu girin doğrudan kaynakta puan. Sadece bir * UNIX * Spec (SUS), ben sadece getirmek, ISO C değil parçası olduğunu akılda tutmak
$ cat wc.c
#include <locale.h>
#include <stdio.h>
#include <wchar.h>
int main(void) {
const wchar_t *name = L"r\u00e9sum\u00e9";
setlocale(LC_CTYPE, "en_US.UTF-8");
wprintf(L"name is %ls\n", name);
return 0;
}
$ ./a.out
name is résumé
Yukarıdaki kod işe yararken, wchar_t öğesinin aynı anda birden çok yerel yeri temsil edemediğinden bahsetmek son derece önemlidir. Sadece mevcut yerel ayarı destekleyecek kadar geniş olmalıdır. –
\ xHEX notasyonu, aradığım şey, teşekkürler. –
Değişken, UTF-16'yı tutacak kadar genişse, \ x00e9 diyebilir misiniz? –