回 帖 发 新 帖 刷新版面

主题:[讨论]关于MEMO读取的问题(UNICODE编码)

用dephi或c++bulid
怎样从ACCESS中读取MEMO中的数据(unicode编码)再存储到另一个表中同样是Memo属性

我自己写进去是乱码,用TNT控件,数据显示的是?
我的代码如下
data->Close();
        data->SQL->Clear();
        data->SQL->Text = "delete * from result_israel";
        data->ExecSQL();

        data->Close();
        data->SQL->Clear();
        data->SQL->Text = "select * from dictionary_israel where jiexi<>'' order by id";//解释 is not null order by id";
        data->Open();
        ProgressBar1->Max = data->RecordCount;
        ProgressBar1->Min = 0;

        for(int i=0; i<data->RecordCount; i++)
        {
          WideString jieshi,tempstr, kong = "\r\n";
          WideString word = data->FieldByName("Word")->Value;
          WideString datastr = data->FieldByName("jiexi")->Value;

          int pos;
          pos = datastr.Pos("\n");
          if(pos == 0)
          {
          data->Next();
          ProgressBar1->Position += 1;
          continue;
          }
          tempstr = datastr.SubString(1,pos - 2);
          if(tempstr != word)
          {
          data->Next();
          ProgressBar1->Position += 1;
          continue;
          }
          jieshi = datastr.SubString(pos + 1,datastr.Length() - pos);
          write->Close();
          write->SQL->Text = "insert into result_israel (Word,jiexi) values (:a, :b)";
          write->Parameters->Items[0]->Value = word;
          write->Parameters->Items[1]->Value = jieshi;
          write->ExecSQL();

          ProgressBar1->Position += 1;
          data->Next();
        }
        ShowMessage("ok!");
望各位大虾们帮个忙谢谢!!!!!!!!!!
数据我可以提供(留个邮箱),先谢谢哦

回复列表 (共1个回复)

沙发


你好,因为BCB的AnsiString是不能识别UniCode编码的,而BCB的控件都是基于AnsiString的,因此显示"?",你可以根据需要使用流、WideString类型或TntWare控件

下面这个网页的连接都是和UniCode编码相关的搜索结果,你自己筛选一下:

http://www.3322ee.com/search.php?searchid=1&orderby=lastpost&ascdesc=desc&searchsubmit=yes

--------------------------------------------------
www.3322ee.com:C++Builder专家社区

我来回复

您尚未登录,请登录后再回复。点此登录或注册