推 purpose:3.內部API用UTF-16LE。但硬碟儲存格式要看檔案系統規定11/06 22:39
4.用主控台應用程式,也就是cmd.exe來看中文字串,是不是編碼一定要改成ANSI? 用
UTF-8是不是就一定看成亂碼?
答:沒這回事,不過用ANSI與UTF-8的程式不一樣
UTF-8可能需要做一個轉換的動作
5.用Visual studio 2005 編輯程式時,如果在程式碼中打入中文字串並儲存在string型
別的變數裡頭,則這個中文字串會是用什麼編碼去儲存? 那萬一我用記事本把
sourcecode另存成utf-8的話,是不是儲存在那個變數裡的中文就轉換成utf-8了?
答:string s = "哈囉"; 這樣寫應該是big5
直接轉換的話,坦白說我不知道會發生什麼事...
如果要用unicode的話,我會這麼寫:wstring s = L"哈囉";
6.為何utf-8的文字檔開頭會先儲存0x FF FE 這三個bytes ? 若創造utf-8文字檔沒有先
寫入這三個bytes的話會發生什麼事嗎?
答:這個東西叫做BOM(Byte Order Mark)
http://60.248.128.85/bbs/dv_rss.asp?s=xhtml&boardid=63&id=491&page=3
上面這個網頁有不錯的介紹
7.在使用Visual studio 2005 c++的主控台應用程式時,
有沒有辦法使用wcout 輸出中文字串顯示到螢幕上?? 又該如何下手呢??
答:我是這麼寫的:
int main()
{
wcout << "哈囉" << endl;
}
不過我不太懂,為什麼這裡不必寫 L"哈囉",加了 L 反而印不出東西
另外,底下的寫法可以通過編譯,但也印不出東西,我也不懂為什麼
#include <iostream>
#include <string>
using namespace std;
int main() {
wstring s = L"哈囉";
wcout << s;
}
坦白說對於 wxxxx 系列的使用,我也非常不熟啊 XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.171.46
→ uranusjr:請不要用 -- 當分隔線, 不然別人無法引用... 11/06 20:52
已修改,真是不好意思
※ 編輯: james732 來自: 140.117.171.46 (11/06 21:35)
推 purpose:3.內部API用UTF-16LE。但硬碟儲存格式要看檔案系統規定 11/06 22:39
感謝補充!
※ 編輯: james732 來自: 140.117.171.46 (11/06 22:40)