解决mssql for linux 中文乱码问题

什么叫一波未平一波又起,这就是,好不容易安装完成了,在用的时候居然出现了乱码,很是头疼,但还是解决了这个蛋疼的问题,在windows中使用mssql这么久,从来没出现过中文乱码的情况,具体原因是出现在SQL Server的安装配置上,默认安装时,系统默认的排序规则时拉丁文的排序规则,在安装过程中从来没注意过,但在CentOS 中怎么配置我就不得而知了,我只能在windows的mssql 客户端进行配置了,解决方法:

创建数据库时,将数据库的排序规则指定为中文简体(Chinese_PRC_CS_AI_WS),注意一点,如果这时数据库中有的表存在数据了,这样操作会失败,所以建议大家在一开始创建数据库的时候就先设置好排序规则,以免麻烦。操作步骤,右键数据库属性->点击选项->修改排序规则,如图:

解决mssql for linux 中文乱码问题

设置完后,再添加的数据就不会出现乱码了。如果是在windows上出现乱码的情况一样可以这样设置,当然还有粗暴的方式,即使重装系统,重装sql,选择好排序规则后再安装。

参数解释如下:
前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
排序规则的后半部份即后缀 含义:
  _BIN 二进制排序
  _CI(CS) 是否区分大小写,CI不区分,CS区分
  _AI(AS) 是否区分重音,AI不区分,AS区分   
  _KI(KS) 是否区分假名类型,KI不区分,KS区分 
        _WI(WS) 是否区分宽度WI不区分,WS区分 
区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
区分重音:如果想让重音和非重音字母视为不等,请选择该选项。如果选择该选项,
比较还将重音不同的字母视为不等。
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项