在操作系统语言选择英文时,widestring与string转换的问题
在操作系统语言选择英文时,发现下边情况赋值后b的值是不一样的,b的值必须通过类型为string类型的a,如果赋完后,才能保证b的值与直接赋的结果是一样的.
var
a:String;
b:WideString;
begin
//第一种赋值法:
b:='中国'; //这样赋完是正确的
//第二种赋值法:
a:='中国';
b:=WideString(a); //这样赋完b的值是乱码,怎么转换才能使这样赋完的结果与 b:='中国'; 这样赋完的结果是相同的.
在使用微软TTS发音时,SPVoice控件的第一个参数是WideString,如果通过第一种赋值方式赋完值后,控件能正确工作,通过第二种方式赋完值后控件不工作,因为b的值能过数据库字段的asstring读出来的,必须做转换,该如何转换才能解决这个问题,操作系统的语言选项要求选择英文
var
a:String;
b:WideString;
begin
//第一种赋值法:
b:='中国'; //这样赋完是正确的
//第二种赋值法:
a:='中国';
b:=WideString(a); //这样赋完b的值是乱码,怎么转换才能使这样赋完的结果与 b:='中国'; 这样赋完的结果是相同的.
在使用微软TTS发音时,SPVoice控件的第一个参数是WideString,如果通过第一种赋值方式赋完值后,控件能正确工作,通过第二种方式赋完值后控件不工作,因为b的值能过数据库字段的asstring读出来的,必须做转换,该如何转换才能解决这个问题,操作系统的语言选项要求选择英文
...全文
相关推荐
Delphi中String与WideString的区别2.docx
Delphi中String与WideString的区别2.docx
从 C++ Builder 6 到 XE2 的升级问题汇总
从 C++ Builder 6 到 XE2 的升级问题汇总:在cb6中,因为没有Unicode的支持,String、string和AnsiString几乎没有区别,甚至系统会自动将两者进行转换,因此代码中存在三者混用的情况。
实现中文和unicode互相转换的代码
实现 中文 和 unicode 互相 转换 的代码 可以很方便地转换中文和unicode 不用手动到cmd下转换
繁简转换软件DELPHI
繁简转换 使用API功能 繁简转换 使用API功能 繁简转换 使用API功能
AdvMemo支持中文.rar
D7的中文支持问题其实是WideString和Ansistring问题,相对处理简单些,也就是判断双字节的问题;XE2就复杂了,XE2里的string本身就是双字节,英文和中文都一样长,但是XE2处理字符宽度是基于TextWidth('A'),只有一个中文字的一半宽,涉及到的地方非常多,通篇处理起来困难,XE2修改不太好,运行时经常死机或报错,哪位高手再处理下。


语言基础/算法/系统设计
