iT邦幫忙

0

MS SQL 簡體字顯示問題請教

最近在處理簡體資料時
有個疑惑

如果要讓正常簡體字顯示的話,一般作法應該是在字串前面加上 N 來轉 NVARCHAR
如下:
https://ithelp.ithome.com.tw/upload/images/20211125/20110872WVnzIo3x6W.png

不過這種方法如果要用在 python 裡面以 batch 方式匯入 DB 時就會報錯

sql =   """
INSERT INTO [My_db]..[my_table]
VALUES (N?)
"""
cursor.executemany(sql, my_data)
cursor.close()

https://ithelp.ithome.com.tw/upload/images/20211125/20110872DrBkFzLfkd.png

因此自己想說或許將資料以 CONVERT 語句轉型或許可以
但自己嘗試一下後發現 CONVERT 轉成 NVARCHAR 好像沒有用?
https://ithelp.ithome.com.tw/upload/images/20211125/201108728mlTLKm3QH.png

請問各位大大,有沒有其他除了「N''」以外的解法呢?
謝謝!

跟nvarchar沒有關係
你應該要看調整你table的charset
huahualiu iT邦新手 2 級 ‧ 2021-11-25 15:00:01 檢舉
請問這是什麼意思呢?
https://blog.darkthread.net/blog/dotnet-chs-cht-conv/
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
chun8106
iT邦新手 5 級 ‧ 2021-11-26 09:10:58

你可以在mysql workbench 嘗試能否成功顯示,如何不能。就要設定table 和 mysql 是UTF-8
如能顯示,就應該是Python 的編碼問題,可以參考以下文章
https://openhome.cc/Gossip/Encoding/Python.html
Python Mysql setting :

db.set_character_set('utf8')
dbc.execute('SET NAMES utf8;')
dbc.execute('SET CHARACTER SET utf8;')
dbc.execute('SET character_set_connection=utf8;')

我要發表回答

立即登入回答