读书人

中文字符串是如何比较的

发布时间: 2012-08-15 16:57:17 作者: rapoo

中文字符串是怎么比较的
比如说lstrcmp 上,龙,中文系统下比较结果是1,但是在英文系统下却是-1,感觉是在中文系统下按照拼音来比较,而英文系统下使用字符编码来比较。请问为何有这样的区别,如何让软件的中文列排序功能能在中英文下都是按拼音排序的?

代码如下
procedure TForm3.btn2Click(Sender: TObject);
var
lstr: string;
lstr1: string;
re: Integer;
begin
lstr := '龙';
lstr1 := '上';
re := lstrcmpW(PWideChar(lstr), PWideChar(lstr1));
ShowMessage(IntToStr(re));
end;

中文下结果是-1,英文系统下结果是1。

而类似的代码,使用C++写出来,为什么在两个系统下没有区别,都是-1。

[解决办法]
这里有个例子,可以下载看看:
http://download.csdn.net/download/hlh2002/3777075

读书人网 >.NET

热点推荐