作者:
2014/3/22 8:15:01
1楼:
没有630
----------------------------------------------
一卡通专家的中专家www.cnduh.com
作者:
star5 (星五)
★☆☆☆☆
-
盒子活跃会员
2014/3/22 8:38:32
2楼:
这不是BUG,是字符编码问题,你需要选择定义正确的编码。 演示只是演示在某个环境下的效果,并不代表所有环境下出的效果是一样的,比如我标明for d7的,你拿xe5去编译,就应该自行处理unicode的问题,这不是bug
此帖子包含附件: 大小: 295.2K
----------------------------------------------
博客 - http://offeu.com 脚本模型 - http://webpascal.com 需要短信接口的请联系我,可发行业与营销内容。
作者:
2014/3/22 8:42:14
3楼:
6.0已上版本都是unicode,要进行编码
----------------------------------------------
-
作者:
2014/3/22 10:17:13
4楼:
多谢楼上提醒,关键很多demo都出现了中文乱码问题 ,包括RtcDataset出来的也是中文乱码 。我尝试把 rtcstring=string 修改成 ansistring . 把rtcchar=char修改成ansichar.结果确实能正常显示中文了。但是有时会出现长度计算错误等报错。所以不能轻易乱改源代码。官方说了 ,rtc6以后,全部修改成unicode了,所以以前方法要做处理,至于怎么弄,再摸索吧 。有兴趣的朋友可以分享一下自己的实战经验
----------------------------------------------
青云论坛
作者:
star5 (星五)
★☆☆☆☆
-
盒子活跃会员
2014/3/22 20:27:59
5楼:
已经说有很清楚了。
----------------------------------------------
博客 - http://offeu.com 脚本模型 - http://webpascal.com 需要短信接口的请联系我,可发行业与营销内容。
作者:
2014/3/22 22:44:59
6楼:
star5 能否把你上面这个宝贵的说明的出处贴出来。 我在好好消化一下; 我在官网的 classroom 找了半天,好像没找到;
----------------------------------------------
青云论坛
作者:
2014/3/23 10:01:33
7楼:
我找到了,是安装文件 help 目录下的 Updates_v604_2012Q3.txt -- 网上收集的说明: 使用XE2+RealThinClient6.04的朋友,需要修改rtcDefs.inc文件激活FORCE_ANSI_STRING,才能支持中文。 在2009以上版本下,要支持中文需修改Lib\rtcDefs.inc: {$DEFINE FORCE_ANSI_STRING}
----------------------------------------------
青云论坛
作者:
2014/3/23 10:55:13
8楼:
在 Lib\rtcDefs.inc 的187行,发现下面两个开关; {.$DEFINE FORCE_ANSI_STRING} // set type RtcString = AnsiString ? {.$DEFINE FORCE_WIDE_STRING} // set type RtcString = WideString ? 因为前面有个点.,所以这两个开关都是关着的; 去掉第一句的点: 把 {.$DEFINE FORCE_ANSI_STRING} 修改成 {$DEFINE FORCE_ANSI_STRING} 好像就彻底好了; 不过官方既然默认隐藏掉这个参数,也是有他道理的; 但是我们做项目的,在未深入掌握RTC前,打开FORCE_ANSI_STRING 这个开关是最傻瓜化的方法了;
----------------------------------------------
青云论坛
作者:
star5 (星五)
★☆☆☆☆
-
盒子活跃会员
2014/3/23 20:46:15
9楼:
不建议使用ansi模式,建议使用utf8 也就是不建议去设置$DEFINE FORCE_ANSI_STRING
----------------------------------------------
博客 - http://offeu.com 脚本模型 - http://webpascal.com 需要短信接口的请联系我,可发行业与营销内容。
作者:
jiansk (jiansk)
★☆☆☆☆
-
盒子活跃会员
2014/6/15 19:03:52
10楼:
@start5: 具体怎样用呢,请指教,我返回的是数据集,没打开 ansi 模式,现在中文是乱码,现在具体要怎样做才能正常呢,谢谢
----------------------------------------------
-
作者:
2014/6/17 11:06:15
11楼:
如果要显示汉字,需要用到utf8,输出的时候用UTF8Encode函数即可。 procedure Tfm_Data.RtcDataProvider1DataReceived(Sender: TRtcConnection); var Srv:TRtcDataServer absolute Sender; sql:string; begin sql:='网页'; if Srv.Request.Complete then Srv.Write(UTF8Encode(sql)); end;
----------------------------------------------
-
作者:
2014/6/17 11:09:40
12楼:
同样的,如果客户端用idhttp获得返回的字符,也需要解码 ,需要用到TStringStream var ajson,AItem: TQJSon; i, imax: integer; S:String; cText:TstringStream; var item: TListViewItem; lName, lValue: TLabel; begin cText:=TStringStream.Create('', TEncoding.UTF8); IdHTTP1.Get(Edit1.Text, cText); ajson := TQJson.Create; ajson.AsJson := cText.DataString; cText.Free; end;
----------------------------------------------
-