osg中建立字型函式:
osg::node* createtext(wchar_t * str,double pos[3],double rgba[4],int textsize ,char * textname)
呼叫建立字型函式
void osgcreatetext(char* str,double pos[3],double rgba[4],int textsize ,char * textname,char *osgnodename)
這裡就有將char * 轉換為wchar_t *型別的工作。
起初我用如下方式:
char *str = "***";
size_t len = strlen(str) + 1;
size_t converted = 0;
wchar_t *wstr;
wstr = (wchar_t *)malloc(len * sizeof(wchar_t));
mbstowcs_s(&converted,wstr,len,cstr,_truncate);
這個方式可以將char* 轉換為wchar_t *;
但是經除錯,在osg顯示的結果還是為亂碼。
後來我測試了一種方式:
osg::ref_ptrtext2 = createtext(l"你好dfa",osg::vec3(20,21,0),osg::vec4(255,255,0,1));
就能成功的在osg上顯示中文。由此可見"l"起了作用,那這個"l"到底是何方聖神呢?
經查詢,這個l代表寬字元(unicode);
所有我就將 char * 轉換為寬字元,問題就解決了。
**如下:
//將字元轉換為寬字元
int nlen = multibytetowidechar(cp_acp,mb_precomposed,str,-1,null,0);
if (nlen > 0)
QT 中文字元亂碼
qstring qbytearray 後位元組碼與window下的不對。下面的中文字元 中國人民億 data是我正常後的gbk位元組,value是直接使用 qstring totoutf8 qstring tolocal8bit 之類的與期望不符的位元組碼。首先qstring 轉換成qbytearr...
關於MySQL中文字元出現亂碼的問題
既然今天寫了個部落格序言,今天總還得寫點別的什麼東西吧,呵呵!好啦,現在就來個現炒現賣的。由於本人正在做乙個資料庫遷移工具,主要是在access foxpro sqlserver mysql oracle dbase paradox等桌面的,伺服器型的各類資料庫之間進行整個資料庫的遷移,但是由於以前...
MySQL不能插入中文字元及中文字元亂碼問題
mysql的預設編碼是latin1,不支援中文,要支援中午需要把資料庫的預設編碼修改為gbk或者utf8。在安裝後mysql之後,它的配置檔案不是很給力,不知道你們的是不是,反正我的是!開始插入中文字元的時候出現如下錯誤 error 1366 hy000 incorrect string value...