【发布时间】:2014-01-19 17:38:01
【问题描述】:
exzample code:
var
str1 : String;
str2 : AnsiString;
....
str2 := ....;
str1 := String(str2);
我按照上面的方法进行了转换,但是没有用。我发现str1中丢失了一些数据。有没有一种安全的方法可以将AnsiString转换为UnicodeString?
【问题讨论】:
-
这是正确的工作方式...您必须更具体地说明您的示例。你的输入是什么,你得到了什么输出(或者你觉得你失去了什么)。
-
也有可能在分配
str2的过程中已经发生了丢失。 -
在不发出编译器警告的情况下工作的预期方式是 EXPLICIT 类型转换:
str1 := UnicodeString(str2);您确实必须更多地说明您认为某些数据丢失的原因。Writeln(length(str1),length(str2):20); if length(str1) = length(str2) then for I := 1 to length(str1) do writeln( str1[i] =str2[i]) ;看看有没有报错 -
@Arioch'您的比较循环非常幼稚,对于映射 Unicode 页面 0 的所有字形,在 Win-1252 代码页之外无法工作。
-
它在 win866 中也适用于 Cyrillics @arnaudbouchez
标签: delphi delphi-xe4 unicode-string ansistring