问几个编码问题

Javpp 2007-07-31 09:20:36
1.
字符串"用户列表" --> "用户列表"

请问"用户列表"是什么编码?

2.
如果一个文件中有英文, 有汉字, 比如内容如下:
I am "字符串"
我怎样写一个程序, 自动将改文件中的中文改成问题一里的编码?? 我怎么样判断是中文呢??
...全文
174 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Javpp 2007-08-01
  • 打赏
  • 举报
回复
谢谢各位啦, 马上写个程序试一下
fjye 2007-08-01
  • 打赏
  • 举报
回复
1、是unicode 大端字节序的编码10进制表示

例:“用”大端字节序的Unicode编码0x7528,换算成10进制为29992,小端的为0x2875

2、用cczlp(不惑)的方法很不错

顺便请教下cczlp(不惑),wchar_t *ws = L"用户列表";这个是什么用法,如果想要得到小端的字节序呢
constantine 2007-08-01
  • 打赏
  • 举报
回复
所以字符串循环一下,判断每个字节,如果是>127那么跟后面的一个直接一起是一个中文,自己代替。然后i+=2;继续判断
constantine 2007-08-01
  • 打赏
  • 举报
回复
补充2.
中文字符用2个字节表示,第一个字节大于127就是中文。
MEFULEU 2007-08-01
  • 打赏
  • 举报
回复
板凳学习一下,html中经常看到这些玩意,就知道是某些码~
cczlp 2007-08-01
  • 打赏
  • 举报
回复
是html unicode 编码, 就是Unicode编码用十进制表示, 前面再加上&#.

void __fastcall TForm1::Button1Click(TObject *Sender)
{
wchar_t *ws = L"用户列表";
WORD *pw = (WORD *)ws;
for (int i = 0; i < 4; i++)
{
ShowMessage("&#"+IntToStr(pw[i]));
}
}
i_love_pc 2007-08-01
  • 打赏
  • 举报
回复
1.是unicode编码

具体可在表中查找
http://www.chi2ko.com/tool/CJK.htm

2.可以将字符串转换为宽字符串类型 WideString

wchar_t a=0x7528;//用
wchar_t b=0x6237;//户
ShowMessage(WideString(a)+WideString(b));//显示“用户”

一下是windows程序设计中的一段话,可以通过unicode码范围来判断是否是中文

----------------------------------------------------------------------
您也许会高兴地知道前128个Unicode字元(16位元代码从0x0000到0x007F)就是ASCII字元,而接下来的128个Unicode字元(代码从0x0080到0x00FF)是ISO 8859-1对ASCII的扩展。Unicode中不同部分的字元都同样基於现有的标准。这是为了便於转换。希腊字母表使用从0x0370到0x03FF的代码,斯拉夫语使用从0x0400到0x04FF的代码,美国使用从0x0530到0x058F的代码,希伯来语使用从0x0590到0x05FF的代码。中国、日本和韩国的象形文字(总称为CJK)占用了从0x3000到0x9FFF的代码。
----------------------------------------------------------------------
jacknes009 2007-08-01
  • 打赏
  • 举报
回复
1.
是html unicode 编码, 就是Unicode编码用十进制表示, 前面再加上&#.
2.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String name = "N我的";
WideString pp = name;
ShowMessage(pp.Length());
wchar_t wch;
String result = "";
for(int i = 1; i <= pp.Length(); i++)
{
wch = pp.operator [](i);
result += "&#";
result += IntToStr(wch);
result += ";";
}
ShowMessage(result);
}
9527 2007-07-31
  • 打赏
  • 举报
回复
1)应该是GB2312吧,你把他们分别转成16进制看看
2)最简单的判断网上有,我记得判断两个字节是否>0xA0,你自己查查看

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧