python读取SQL server中文乱码处理

场景

  • 开发机win10,记E1。
  • 服务器server 2012,记E2。
    一个python数据处理脚本,功能是一些数据存储操作。使用了pandassqlalchemy做数据库连接。
    在E1上正常运行,结果正确。部署到E2上后也能正常运行,但是出现中文乱码。
    乱码出现在,从同一个sql server中读取的中文数据里。
    一开始以为是数据库连接代码缺了强制编码类型,于是尝试了?charset=utf8等限制,没有效果。
    可能是因为不同系统的一些设置不同导致的。但是这个问题我没有找到正确的设置。
    记起来,sql server的varcharnvarchar是有区别的,其中varchar容易导致中文乱码的问题。
    所以尝试强制转码。

解决方案

  1. df = pd.read_sql(xxxx)
  2. df.name = df.name.apply(lambda x: str(x).encode('latin-1').decode('gbk'))
  3. 这样df.name的中文乱码就解决了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章