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