5 Ekim 2017 Perşembe

locale conv from_utf metodu

Giriş
Şu satırı dahil ederiz.
#include <boost/locale.hpp>
Bu metodun tersini locale::conv::to_utf metodu yapar.

from_utf - char * + encoding + method type
conv::stop ilk hatada durur. conv::skip hatayı dikkate almaz.Şöyle yaparız.
char sz[] = { 0xE4,0xB6, 0xAE,0};
char sz2[] = { 0xEE, 0xA1,0xA3,0 };

try {
  boost::locale::conv::from_utf(sz2, "gbk", boost::locale::conv::stop);
  boost::locale::conv::from_utf(sz, "gbk", boost::locale::conv::stop);
}
catch(boost::locale::conv::conversion_error e){
    cout << e.what() << endl;
}
from_utf - string + encoding
Şöyle yaparız.
string utf8_str = "Grüssen";
string normal_str = boost::locale::conv::from_utf(utf8_str, "ISO-8859-15");
from_utf - char + locale
Şöyle yaparız.
const unsigned char utf8[] = { 0x41, 0x50, 0x4f, 0x53, 0x54, 0x20, 0x28, 0x20, 0xe2, 0x80,
  0x98, 0x20, 0x29, 0x20, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x20, 0x28, 0x20, 0xe2, 0x80,
 0x9c, 0x20, 0x29, 0x20, 0x28, 0x20, 0xc2, 0xab, 0x20, 0xc2, 0xbb, 0x20, 0x29, 0x00 };

boost::locale::generator loc_g;
std::string ansi0 = boost::locale::conv::from_utf<char>((const char*)utf8,
  loc_g.generate("Latin1"));

printf("Latin1: %s", ansi0.c_str());
from_utf - string + locale
Şöyle yaparız.
string utf8_str = "Grüssen";
string normal_str = boost::locale::conv::from_utf(utf8_str, std::locale());

Hiç yorum yok:

Yorum Gönder