最近因项目要求,需要些一个类似同花顺、通达信的网上交易客户端,与服务器直接的通讯协议才fix。网上找了下对fix的协议封装比较好的是quickfix。目前有各种语言的实现版本,基本能够满足大部分人的需求。
我下载了一个.net版本的quickfix/n 。在使用过程中遇到一个字符编码的问题,记录下。
8=FIX.4.29=27135=834=2149=SERVER52=20200826-01:48:55.47856=CLIENT1=2676986811=9403000337=-9403000338=10039=841=9403000354=155=30050258=[transapi.1.7] ′í?ó′ú??[11101] ′í?ó?úèY[?í?§[129501189743]éD?′??êe′′òμ°?D-òé[A?ò2k]£?2??êDí′′òμ°???ò×]60=20200826-09:48:55.000207=XSHE10=040
OnMessage execution report
这是一条具体的订单执行回报的消息。里面有乱码。由于对方采用的GBK的编码,通过对quickfix源码,默认的字符编码格式是iso-8859-1
在项目中修改quickfix成GBK编码即可
QuickFix.CharEncoding.DefaultEncoding = System.Text.Encoding.GetEncoding("GBK");
修改后的消息如下:
【quickfix/N|quickfix/n 中文乱码】 8=FIX.4.29=27035=834=349=SERVER52=20200826-01:52:46.97856=CLIENT1=2676986811=9524700137=-9524700138=10039=841=9524700154=155=30050258=错误内容[客户[129501189743]尚未签署创业板协议[A或2k],不允许创业板交易]60=20200826-09:52:46.000207=XSHE10=013
OnMessage execution report
推荐阅读