用VCL的函数转换中文字符串至Utf8格式的Char数组,如下代码实现
type
TAttGuardCard = record
FileSort: Integer;
CardID: Integer;
PersonID: array[0..6] of Char;
Name: array[0..7] of Char; //姓名
Year,Month,Day: Integer; //年,月,日
end; TDBAttGuardCard = record
CardID: Integer;
PersonID: String;
Name: String;
ExpireDate: TDateTime;
end;
var
attDBCardInfo: TDBAttGuardCard;
attCardInfo: TAttGuardCard;
name: array[0..3] of WideChar;
begin
StringToWideChar(attDBCardInfo.Name,name,4);
UnicodeToUtf8(attCardInfo.Name,name,8);
end;同样用VCL函数转换UtfChar数组至中文字符串时,用如下代码没有成功,请指点
var
attDBCardInfo: TDBAttGuardCard;
attCardInfo: TAttGuardCard;
name: array[0..3] of WideChar;
begin
Utf8ToUnicode(name,attCardInfo.Name,4);
attDBCardInfo.Name := WideCharLenToString(name,4);
end;
type
TAttGuardCard = record
FileSort: Integer;
CardID: Integer;
PersonID: array[0..6] of Char;
Name: array[0..7] of Char; //姓名
Year,Month,Day: Integer; //年,月,日
end; TDBAttGuardCard = record
CardID: Integer;
PersonID: String;
Name: String;
ExpireDate: TDateTime;
end;
var
attDBCardInfo: TDBAttGuardCard;
attCardInfo: TAttGuardCard;
name: array[0..3] of WideChar;
begin
StringToWideChar(attDBCardInfo.Name,name,4);
UnicodeToUtf8(attCardInfo.Name,name,8);
end;同样用VCL函数转换UtfChar数组至中文字符串时,用如下代码没有成功,请指点
var
attDBCardInfo: TDBAttGuardCard;
attCardInfo: TAttGuardCard;
name: array[0..3] of WideChar;
begin
Utf8ToUnicode(name,attCardInfo.Name,4);
attDBCardInfo.Name := WideCharLenToString(name,4);
end;
解决方案 »
- 怎么用正则表达式取出下面的值
- 如何把一个打印报表转化为文档保存?
- 能从Windows层面操作Delphi的ComboboxEx控件吗?
- 怎么把屏幕的一部分镜象显示
- 谁能给出TList、TCollection、TStack、TBucketList、TQueue、TOrderedList的例子
- 如何使窗体在鼠标放到标题栏上时显示其上的所有控件,而鼠标离开时隐藏其上的所有控件?
- 使用 socket 如何传送大文件
- ListBox
- 这句sql语句是哪儿错了?
- 大家用过 activeX里面的 Formula One 吗!是好东西啊!
- 如何捕捉CxGrid的双击事件?
- 设置了Dbgrid的KEYPRESS代码,不能按回车后移到下一格,而是先移完EDIT再到DBGRID的下一格?
procedure TForm1.BitBtn1Click(Sender: TObject);
var
strOrigin,strDest: String;
wcName: array[0..3] of WideChar;
cName: array[0..7] of Char;
begin
FillChar(wcName,SizeOf(wcName),0);
FillChar(cName,SizeOf(cName),0); strOrigin := Edit1.Text;
StringToWideChar(strOrigin,wcName,8);
UnicodeToUtf8(cName,wcName,10); Utf8ToUnicode(wcName,cName,4);
strDest := WideCharLenToString(wcName,4);
Edit1.Text := strDest;
end;