在读写文件时,出现中文问题!(急)

gongfucai 2003-11-11 05:31:26
在读写文件时,出现中文乱码问题,怎么办?
那个有没有好的源程序,非常感谢!
...全文
37 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
咸鱼 2003-11-18
  • 打赏
  • 举报
回复
其实中文和E文一样,读写并没有特殊的代码。
比如,char *st="中文字符串";
fputs (st,fp);
如此这般操作,怎么会有乱码呢?
不知道楼上是怎么写的呢?
duduwolf 2003-11-18
  • 打赏
  • 举报
回复
你如果设置了一次读取的count,如设置了缓冲区buffer=4096;
那你的程序就应该在4096处判断当前字符是否为中文字符,是中文字符,是高位字符还是低位字符,反正意思就是不要把一个汉字的两个字节给分离成两行写。
还有,我觉得你用fwrite之类的写文件应该不会出现上述情况的,除非你用了writeline之类的一次写一行
gongfucai 2003-11-18
  • 打赏
  • 举报
回复
求读写中文的代码?
gongfucai 2003-11-14
  • 打赏
  • 举报
回复
我在写文件时好像还有问题,有时有乱码
gongfucai 2003-11-13
  • 打赏
  • 举报
回复
非常感谢上面几位答案
但不知道哪个有没有读写文件的代码??
swites 2003-11-13
  • 打赏
  • 举报
回复
用下面函数实现解析出汉字串内码:
unsigned char *TakeCode(unsigned char *string,unsigned *h)
{
if((*h=*string++)==0)
return NULL;
else
{
if(*h>0xa0 && *string>0xa0)
*h|=(*string++)<<8;
return string;
}
}
gk0205 2003-11-12
  • 打赏
  • 举报
回复
把你写的代码贴出来

是遇到半个字符的问题?

直接fwrite写进去的是中文是乱码?
firestars 2003-11-12
  • 打赏
  • 举报
回复
是的,中文字符要占两个字节,而且都是小于0的。你每读一个字节的时候要自己作判断,如果是小于0的就知道肯定碰到中文字符了,注意要多读个字节出来
jEditor 2003-11-12
  • 打赏
  • 举报
回复
中文是有两个字符组成的,你变成了乱码,就是碰到了半个字符了!
检查是否是中文:
String sCheck = "gsd哈2sdf你3撒sdg啊";
BOOL __fastcall TForm::CheckStrChinese(String sCheck)
{
int nLength = sCheck.Length();
BOOL bChinese = false;
for(int i = 1; i <= nLength; i++)
{
if(sCheck[i] < 0)
{
bChinese = true;
break;
}
return bChinese;
}
对于如何读写,通过上面的原理,你应该知道怎么做了!
gongfucai 2003-11-12
  • 打赏
  • 举报
回复
求读写的中文的代码!!!!!
gongfucai 2003-11-11
  • 打赏
  • 举报
回复
是读写有中文文件的源程序

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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