C++ 11, yeni bir dizi hazır bilgi öneklerini (hatta kullanıcı tanımlı soneklere izin verir) sunar. Bunun üzerine, kodlama hakkında endişelenmenize gerek kalmadan belirli bir sembolü kodlamak için Unicode çıkış sekanslarını doğrudan kullanabilirsiniz.Unicode dize değişmezleri
const char16_t* s16 = u"\u00DA";
const char32_t* s32 = U"\u00DA";
Ama bunun da wchar_t
dize hazır unicode kaçış dizilerini kullanabilirsiniz? Bu mümkün değilse bir kusur gibi görünüyor.
const wchar_t* sw = L"\u00DA";
elbette belli bir platformda ne wchar_t
bağlıdır, ancak diğer tüm etkileri olacağını sw[0]
tamsayı değeri, bu taşınabilir olmalı, değil mi?
I sw 'değeri [0]' wchar_t' sadece ölçüde belirli bir platform üzerinde ne 'bağlıdır inanıyoruz wchar_t'nin boyutu nedir? Yani '\ u00DA', her zaman bu tip bir platformun normal kodlaması olmasa bile, U + 00DA’nın bazı Unicode kodlamasıyla (UTF-8, UTF-16, UTF-32) sonuçlanmalıdır. – bames53
Aslında yukarıdaki yanlıştır. Uygulama, evrensel karakter isimlerini gerçek karakter olarak ele almalıdır. Yani, eğer uygulama karakterleri bir dizgi içinde bir karakter dizisi içinde yürütme karakter kümesine çevirirse, bunu UCN'lerle de yapmalıdır. UCN'nin bir unicode literal (örn., U8 "\ u00DA") içinde olması durumunda, UTF kodlamasını yalnızca garantilendirirsiniz. – bames53