传送汉字的问题(100分)

  • 主题发起人 主题发起人 qinwq
  • 开始时间 开始时间
Q

qinwq

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(!]最近开发一个程序,从客户端传送一组汉字到服务器,发现服务器把一个汉字当成一个字符。如“中国人”在服务器显示为“中”字再加一个异常符号,如果传送“中国人*”则显示“中国”,传送“中国人***”则显示“中国人”。这是什么原因?该如何解决?
 
字段的變量是不是出問題了....
 
你用什么控件开发的,clientsocket和serversocket应该不会出现这种问题,
以前从服务器上获取汉字到是多了一些字符,不过trim一下就好了。s
 
是不是变量类型?


 
关键是看你接收时怎么处理,要注意每个汉字占2字节。
 
这样的情况我在使用C/S结构时也遇到过。
最后处理的办法就是把SQL语句用Format函数来转换
如ADOQuery1.Sql.Text:=Format('delete from Employee where name=''%s''',[Edit1.text]);
如果你直接用ADOQuery1.Sql.Text:='delete from Employee where name='''+Edit1.text+'''')就会出现上叙情况。
 
是接收方的字节长度限制了吧
 
这是Delphi的BUG,直接赋值给字段没问题,传递筛选条件或者SQL语句会出错.
我的解决办法是放在服务端去执行,
三层结构客户端本来就应当尽量避免使用有关对数据库表的操作语句。
 
后退
顶部