QString和string互轉中文字元

2021-07-02 04:55:04 字數 2504 閱讀 5265

string -> qstring

1

std::

string

strstd ="

中文字元";

2qstring strq

=qstring::fromlocal8bit(strstd.c_str());

qstring -> string

1

qstring strq(

"中文字元");

2std::

string

strstd

=strq.tostdstring();

3qtextcodec

*code

=qtextcodec::codecforname(

"gb18030");

4//如果code為0,表示在執行的機器上沒有裝gb18030字符集。不過一般的中文windows系統中都安裝了這一字符集5if

(code) strstd

=code

->

fromunicode(strq).data();

有時候用ifstream或ofstream開啟帶有中文路徑的檔案會失敗。

解決辦法:

1、使用c語言的函式設定為中文執行環境

setlocale(lc_all,"chinese-simplified");

2、使用stl函式設定為系統語言環境

std::locale::global(std::locale(""));

當然選2啦!

1.最近程式設計採用c 檔案操作來讀入乙個檔案,**:

ifstream inf;

inf.open(strpath);     //通過檔案路徑開啟檔案

當檔案路徑strpath中帶有中文時程式執行錯誤,導致卡死,後來終於弄清用c 方法開啟帶中文路徑的檔案時會有bug,誰叫這東東是老外寫的呢,但是通過下面的方法可以解決,如**:

ifstream inf;                              //c 方式開啟檔案

locale::global(locale(""));         //將全域性區域設為作業系統預設區域

inf.open(strpath);                    //通過檔案路徑開啟檔案

locale::global(locale("c"));     //還原全域性區域設定string -> qstring

1

std::

string

strstd ="

中文字元";

2qstring strq

=qstring::fromlocal8bit(strstd.c_str());

qstring -> string

1

qstring strq(

"中文字元");

2std::

string

strstd

=strq.tostdstring();

3qtextcodec

*code

=qtextcodec::codecforname(

"gb18030");

4//如果code為0,表示在執行的機器上沒有裝gb18030字符集。不過一般的中文windows系統中都安裝了這一字符集5if

(code) strstd

=code

->

fromunicode(strq).data();

有時候用ifstream或ofstream開啟帶有中文路徑的檔案會失敗。

解決辦法:

1、使用c語言的函式設定為中文執行環境

setlocale(lc_all,"chinese-simplified");

2、使用stl函式設定為系統語言環境

std::locale::global(std::locale(""));

當然選2啦!

1.最近程式設計採用c 檔案操作來讀入乙個檔案,**:

ifstream inf;

inf.open(strpath);     //通過檔案路徑開啟檔案

當檔案路徑strpath中帶有中文時程式執行錯誤,導致卡死,後來終於弄清用c 方法開啟帶中文路徑的檔案時會有bug,誰叫這東東是老外寫的呢,但是通過下面的方法可以解決,如**:

ifstream inf;                              //c 方式開啟檔案

locale::global(locale(""));         //將全域性區域設為作業系統預設區域

inf.open(strpath);                    //通過檔案路徑開啟檔案

locale::global(locale("c"));     //還原全域性區域設定

python中string和bytes互轉

首先來設定乙個原始的字串,python 3.2.3 default,apr 11 2012,07 15 24 msc v.1500 32bit intel on win32 type help credits or license for more information.website type ...

QString和string型別相互轉換

在使用qt和c 進行開發的時候,由於兩者的資料型別不完全相同,需要進行轉換。下面介紹qstring和string型別相互轉換的方法。qt4.6上已測試可用。1 在標頭檔案中新增inlucde資訊和轉換函式宣告 cpp view plain copy include include include i...

QString和string型別相互轉換

在使用qt和c 進行開發的時候,由於兩者的資料型別不完全相同,需要進行轉換。下面介紹qstring和string型別相互轉換的方法。qt4.6上已測試可用。1 在標頭檔案中新增inlucde資訊和轉換函式宣告 cpp view plain copy include include include i...