楼主:
descent (“雄辩是银,沉默是金”)
2015-03-05 18:10:24※ 引述《x049 (FD)》之铭言:
: 小弟之前发过一篇询问字串转16*16 bitmap的方法
: https://www.ptt.cc/bbs/C_and_CPP/M.1421124353.A.575.html
: 但是在学习freetype时参考下列文章,遇到了宽字符wchar_t类型出现问题
: http://yycking.blogspot.tw/2010/12/freetypebitmap.html
: 错误讯息是[Error] converting to execution character set: Illegal byte sequence
: 在main内的if(rasters(L"新年快乐", &bitmap))此行出现错误,光标在L那里闪烁
: 使用的是 DEV c++ 编译器
: 有去爬文都说在编译器加入命令转成UTF-8编码,可是还是会出现错误讯息,
: 希望有大大能解答。
你要传 wchar_t 这种 type, utf8 c-style string 要先转 wchar_t,
可以使用 c++ 11 的 unicode class
str 是以 utf8 encoding 的 string
std::string wstring_to_utf8 (const std::wstring& str)
{
std::wstring_convert<std::codecvt_utf8<wchar_t>> myconv;
return myconv.to_bytes(str);
}
std::wstring utf32_str = utf8_to_wstring(disp_str);
utf32_str[i] 这样传进去。
gcc c++11 不能用这样的方法,
我是用 clang with libc++
clang -stdlib=libc++ -std=c++11 ex.cpp