碰到一个奇怪的问题:
我从服务端取到一个字符串保存在变量S中,我要用S拼出自己要的一个字符串,如
<Name>S</name>;但是现在结果显示出来有时候会变成这样:<Name>S?/name>;
好像是S后面带了一个不可见的字符(前面把S打印出来发现是没有问题的,有一次打印出来有一个空格)和尖括号的另一半组合成一个问号了;现在程序不在自己这边,不能单步调试,所以向大家请教
我从服务端取到一个字符串保存在变量S中,我要用S拼出自己要的一个字符串,如
<Name>S</name>;但是现在结果显示出来有时候会变成这样:<Name>S?/name>;
好像是S后面带了一个不可见的字符(前面把S打印出来发现是没有问题的,有一次打印出来有一个空格)和尖括号的另一半组合成一个问号了;现在程序不在自己这边,不能单步调试,所以向大家请教
看你的服务端是怎样返回的数据。
有几种可能性:
1 SQL SERVER中存在半个汉字。
2 在数据传输的过程中多了一个字节。
最常见的产生半个汉字的情况是
假设你在sql server中定义的是varchar(2)
那么
Query.Edit;
Query['field'] := 'a我'; //半个汉字产生了!解决方法:加大字段长度,或者使用nvarchar(2)
不过对已经存在的半个汉字很麻烦,只能用手工处理,或者写程序来检测有没有半个汉字。