unicode文本文件存储类(C++)

原创 2007年09月17日 18:47:00
#include <stdio.h>
#include <windows.h>

class TUnicodeFileWriter
{
private:
   FILE *FFS;
   TUnicodeFileWriter();
public:
   TUnicodeFileWriter( char *AFileName)
   {
      FFS = fopen( AFileName, "wb");
      char h1 = 0xff, h2 = 0xfe;
      fwrite( &h1, 1, 1, FFS);
      fwrite( &h2, 1, 1, FFS);
   }
   ~TUnicodeFileWriter()
   {
      fclose( FFS);
   }
public:
   void WriteLine( char *AStr)
   {
      WriteString( AStr);
      WriteString( "/r/n");
   }
   void WriteString( char *AStr)
   {
      wchar_t *ws = 0;
      //获取unicode码的长度。好像不论字符串是否为空,长度都是实际长度
      //加1,最后一个unicode码都是00 00
      int len = MultiByteToWideChar( CP_ACP, 0, AStr, -1,  NULL, NULL);

      ws = new wchar_t[ len];

      MultiByteToWideChar( CP_ACP, 0, AStr, -1, ws, len);
      //写入时需去掉最后一个空unicode码
      len = len - 1;

      fwrite( ws, sizeof( wchar_t), len, FFS);

      delete ws;
   }
};

使用方法:
void write_unicode( void)
{
   TUnicodeFileWriter ufw( "c://1.txt");
   ufw.WriteLine( "a你好a吗,嘿嘿!a");
}

相关文章推荐

c++编写xml操作类(添加关于多种编码的支持)

       今天上网具体看了下关于编码格式的资料,想自己的xml解析程序一直都只支持ansi,那么我们就现学现用,让它支持Unicode和utf8编码吧。xml.h:#include ...

Unicode UTF-8 Ansi 互转及MultiByteToWideChar和WideCharToMultiByte用法等编码相关

Unicode,到UTF-8。  qp::StringW Global::AnsiToUnicode(const char* buf){ int len = ::MultiByteToWideC...

C++中,将.txt文件的编码由UTF-8转换为ANSI

1,将UTF-8转换为 int Utf8ToAnsi(const char *pstrUTF8, char *pstrAnsi) {     int i = 0;     int j = ...

C++字符串转换(Unicode和ANSI互转)

1、ANSI 转 Unicode     int  MultiByteToWideChar(                 UINT            uCodePage,     //CP...
  • ymkigeg
  • ymkigeg
  • 2014年09月25日 15:43
  • 705

C++中Ansi、Unicode、UTF8字符串之间的转换和写入文本文件 -

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 转地址:http://dark0729.blogbus.com/logs/51496111.html Ansi字符串我们最...
  • yyxaf
  • yyxaf
  • 2012年03月13日 20:15
  • 2669

C++中Ansi、Unicode、UTF8字符串之间的转换和写入文本文件

Ansi字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个\0结尾,常用于txt文本文件 Unicode字符串,每个字符(汉字、英文字母)都占2个字节,以2个连续的\0结尾,NT操作系统内核用的...
  • educast
  • educast
  • 2014年01月25日 09:07
  • 1537

C++中Ansi、Unicode、UTF8字符串之间的转换和写入文本文件

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://dark0729.blogbus.com/logs/51496111.html Ansi字符串我们最熟悉...

Ansi、Unicode、UTF8字符串之间的转换和写入文本文件

Ansi、Unicode、UTF8字符串之间的转换和写入文本文件转载请注明出处http://www.cppblog.com/greatws/archive/2008/08/31/60546.html最...

一个写Unicode 文本文件的方法

//原来一直用C中wfopen,putwc这些东西写unicode的文件//一直没发现用wstring,wchar_t 的方法。 //最近在下面这个位置,发现一个好东西。 //http://www....
  • lionzl
  • lionzl
  • 2011年06月01日 16:16
  • 409

文本文件及二进制文件的大小, Unicode/utf-8/ansi编码格式

今天看别人写的程序, 有一点不是很明白, 就是在mfc的程序中利用CFile在写文件时是怎么区别二进制文件和文本文件的. 首先说一下二进制文件和文本文件的区别: 从网上找到一篇文章, 写的挺基础,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:unicode文本文件存储类(C++)
举报原因:
原因补充:

(最多只允许输入30个字)