作者:
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