Re: [问题] 中文写进MSSQL变成乱码

楼主: Lawrancechan (劳伦湿)   2022-11-10 12:54:18
这个我有遇过 中文前面加个N看看
不过我是在Linux 的环境上刻的 不知道有没有用
cur.execute(f"Insert into dbo.ABC values (N'中文',N'中文二', N'中文三')")
conn.commit()
※ 引述《ReTryx ()》之铭言:
: 想请教各位高手们有没有遇到如标题的问题过?google完也试过网络上的解法,都无法成
: 功。
: 以下是环境以及问题
: 我用pymssql 连 mssql, 在连线的时候一定要把charset 也写进去,不然会出现错误,而
: 我charset 是用CP950
: 接着在insert中文进SQL后,在SQL里面看会发现insert进去的都是乱码。但如果用Python
: 再select 出来却会是中文。
: 但如果是SQL里面本来就是中文的资料,从Python select 出来就也会变成乱码在Python
: 上,同样的,用Python 写进去变成乱码的中文由其他语言读出来也会是乱码。
: 简单来说就是Python写进去的中文乱码只能由Python 自己读来才能解码成中文。而本来
: 在DB里就是中文的资料Python 读出来就会变成乱码。
: 我试过用encode and decode,但还是无解。请问有人成功试过从中文从Python写进MSSQL
: 里面不会变成乱码的吗?
: 感谢帮忙
: 程式码
: conn = pymssql.connect(server = '', user = '', password =
: '', database = '', charset='CP950')
: .
: .
: .
: cur.execute(f"Insert into dbo.ABC values ('中文', '中文二', '中文三')")
: conn.commit()
: 以上charset如果省略不填则无法连线

Links booklink

Contact Us: admin [ a t ] ucptt.com