java gb13000 ucs2_采用GB 13000的UCS-2进行存储的文件怎么转换
不是sql中的數據吧
你那個是單個文件嗎?
假設文件頭采用標準UCS2格式的兩個字節,每個字段的數據是通過\t分隔的,每行文字是一條記錄,如果有不同,需要對程序進行調整。
FILE *f = _wfopen(L"d:\\文件名.txt",L"rb");
if(f) // 打開文件成功
{
unsigned char hdr[2];
fread(hdr, 1, 2, f); // 讀 UCS2 UNICODE 文本文件頭2個字節
if(hdr[0]==0xff && hdr[1]==0xfe) // 是 UCS2 UNICODE 文本文件
{
wchar_t wsLine[1024];
std::vector fds;
while(fgetws(wsLine, 1024, f)) // 按行讀取
{
fds.clear();
wchar_t *p,*s = wsLine;
for(p=s; *p; p++)
{
if(*p==L'\t')
{
*p = 0;
fds.push_back(s);
s = p+1;
}
else if(*p==L'\r' || *p==L'\n') // 行末
{
*p = 0;
fds.push_back(s);
s = p;
break;
}
}
if(*s) // 最后一行可能沒有回車,這里判斷一下
{
fds.push_back(s);
}
int nCount = fds.size(); // 這一行一共有的字段個數
for(int i=0; i
{
WideString ws = fds[i]; // 這一行的第 i 個字段的值
}
}
}
else
{
MessageBoxW(Handle, L"不是 UCS2 UNICODE 文本文件",L"讀文件錯誤",MB_OK|MB_ICONSTOP);
}
fclose(f);
}
else
{
MessageBoxW(Handle, L"打開文件失敗",L"讀文件錯誤",MB_OK|MB_ICONSTOP);
}
---------------找別人的
看以下能幫到你不?
GB18030-2000的字匯部分是這樣寫的:
本標準收錄的字符分別以單字節、雙字節和四字節編碼。
5.1 單字節部分
本標準中,單字節的部分收錄了GB 11383的0x00到0x7F全部128個字符及單字節編碼的歐元符號。
5.2 雙字節部分
本標準中,雙字節的部分收錄內容如下:
GB 13000.1的全部CJK統一漢字字符。
GB 13000.1的CJK兼容區挑選出來的21個漢字。
GB 13000.1中收錄而GB 2312未收錄的我國臺灣地區使用的圖形字符139個。
GB 13000.1收錄的其它字符31個。
GB 2312中的非漢字符號。
GB 12345 的豎排標點符號19個。
GB 2312未收錄的10個小寫羅馬數字。
GB 2312未收錄的帶音調的漢語拼音字母5個以及ɑ 和ɡ 。
漢字數字“〇”。
表意文字描述符13個。
增補漢字和部首/構件80個。
雙字節編碼的歐元符號。
5.3 四字節部分
本標準的四字節的部分,收錄了上述雙字節字符之外的,包括CJK統一漢字擴充A在內的GB 13000.1 中的全部字符。
-------------別人的
總結
以上是生活随笔為你收集整理的java gb13000 ucs2_采用GB 13000的UCS-2进行存储的文件怎么转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 回溯法 子集树模板 系列
- 下一篇: 【MATLAB】进阶绘图 ( MATLA