Re: [問題] 中文寫進MSSQL變成亂碼

看板Python作者 (Lawrancechan)時間1年前 (2022/11/10 12:54), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
這個我有遇過 中文前面加個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如果省略不填則無法連線 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.111.205 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1668056060.A.F61.html
文章代碼(AID): #1ZR8FyzX (Python)
文章代碼(AID): #1ZR8FyzX (Python)