如何用Delphi创建一个Unicode的文本文件
答案:1 悬赏:10
解决时间 2021-01-08 02:04
- 提问者网友:缘字诀
- 2021-01-07 15:58
如何用Delphi创建一个Unicode的文本文件
最佳答案
- 二级知识专家网友:青灯有味
- 2021-01-07 17:15
给你个函数,直接调用就可以了,它可以实现string到unicode的转换.
type
TCodePage=(cpStandard,cpGB,cpBig);//unicode 转换类型,
const CodePageID:array[0..2] of integer=(0,936,950);
function StringToUnicode(s:string;CodePage:TCodePage):widestring;
var
SourceLen, ResultLen: Integer;
Buffer: array[0..1023] of WideChar;
begin
SourceLen := Length(s);
if SourceLen < SizeOf(Buffer) div 2 then
Result := SysAllocStringLen(Buffer, MultiByteToWideChar(CodePageID[ord(codePage)], 0,
PChar(s), SourceLen, Buffer, SizeOf(Buffer) div 2))
else
begin
ResultLen := MultiByteToWideChar(CodePageID[ord(codePage)], 0,
Pointer(s), SourceLen, nil, 0);
Result := SysAllocStringLen(nil, ResultLen);
MultiByteToWideChar(CodePageID[ord(codePage)], 0, Pointer(s), SourceLen,
Result, ResultLen);
end;
end;
eg:
AText:=StringToUnicode(AText,cpBig);
应该没问题的.
type
TCodePage=(cpStandard,cpGB,cpBig);//unicode 转换类型,
const CodePageID:array[0..2] of integer=(0,936,950);
function StringToUnicode(s:string;CodePage:TCodePage):widestring;
var
SourceLen, ResultLen: Integer;
Buffer: array[0..1023] of WideChar;
begin
SourceLen := Length(s);
if SourceLen < SizeOf(Buffer) div 2 then
Result := SysAllocStringLen(Buffer, MultiByteToWideChar(CodePageID[ord(codePage)], 0,
PChar(s), SourceLen, Buffer, SizeOf(Buffer) div 2))
else
begin
ResultLen := MultiByteToWideChar(CodePageID[ord(codePage)], 0,
Pointer(s), SourceLen, nil, 0);
Result := SysAllocStringLen(nil, ResultLen);
MultiByteToWideChar(CodePageID[ord(codePage)], 0, Pointer(s), SourceLen,
Result, ResultLen);
end;
end;
eg:
AText:=StringToUnicode(AText,cpBig);
应该没问题的.
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯