我看了一些文章说WINDOWS NT及以上版本是基于UNICODE内核的,而我的系统繁体版的WINDOWS的目录确实也能同时显示简体和繁体。但当我用繁体版的WINDOWS的API:FINDFIRSTFILEW、FINDNEXTFILEW来读取简体的目录时,返回的字符串可以通过TNTUNICODE控件正确显示,但一写入数据库就变乱码,数据库的相关字段已经设置为NVARCHAR。各位朋友请指点迷津,非常感谢。
解决方案 »
- 使用PostMessage后台发送模拟按键的问题
- 如何让DBGRID的事件失效?
- DELPHI获取系统版本
- 在设计多线程下载时我联想到这么个画面,有什么设计模式可以处理么
- 统计问题!!!!!!
- 关于Socket的编程
- 我在intraweb中用一张图片作为背景,
- 如何取得网页超级链接所指的页面上的所有文字?
- WIN98,WIN2000,WINXP会在ODBC里装上什么驱动程序?有没有TEXT DRVIER?能不能单独装TEXT DRIVER
- 请高手解说Application.ProcessMessages;的作用
- 关于dbgrideh中STfilter的问题,选择了filter下拉列表中的数据,但grid中并不过滤!~
- Memo控件的显示问题?
procedure TForm1.Button1Click(Sender: TObject);
var
WS, AMsg: WideString;
AFH: THandle;
ADataW: _Win32_Find_DataW;
begin
WS := 'c:\简体目录';
AFH := FindFirstFileW(PWideChar(WS + '\*.*'), ADataW);
if AFH <> INVALID_HANDLE_VALUE then begin
repeat
AMsg := ADataW.cFileName;
WideShowMessage(AMsg);//显示正常
ShowMessage(AMsg);//显示乱码
until not FindNextFileW(AFH, ADataW);
end;
end;
估计是显示的问题而已就如 WideShowMessage(AMsg);//显示正常
ShowMessage(AMsg);//显示乱码
只是 showMessage 不能正确显示,而不是 Amsg 里面的数据乱了
写入数据库时用
//AMsg从上文已经知道是个WideString
AODQuery1.FieldByName('AMsg').Value := AMsg;//乱码
AODQuery1.FieldByName('AMsg').AsString := AMsg;//乱码
TTntWideStringField(AODQuery1.FieldByName('AMsg')).AsWideString := AMsg;//乱码
搞得我现在比较郁闷。
AODQuery1.FieldByName('AMsg').Value := AMsg;//乱码
AODQuery1.FieldByName('AMsg').AsString := AMsg;//乱码用SQL和Params,比如下面
ADOQuery1.sql.text := 'insert into yourTable(AMsg) values(:Msg)';
with Qry.Parameters.ParamByName('Msg') do
begin
DataType := ftWideString;
Value := AMsg;
end;
ADOQurey1.ExecSQL;从数据库读出来时这样:
WideShowMessage(VarToWideStr(AODQuery1.FieldByName('AMsg').Value));试试看。
写数据库时与Oracle字符集有关的。
==============================================
按您说的代码测试了一下,还是不行。
var AMsg: widestring;AODQuery1.FieldByName('AMsg').AsWideString:= AMsg;这样呢?估计你用string 去存,被转错了
==============================================
您说的很有道理,但我用这个语句转
TTntWideStringField(AODQuery1.FieldByName('AMsg')).AsWideString := AMsg;//乱码
真的很奇怪啊。
ado 连接串里面的 “自动转换” 设置为false 看看
==============================================
请问是哪个属性呢,怎么设?
谢谢大家。