在 JDBC url 中指定字符編碼。前任:jdbc:mysql://host:3306/db?characterEncoding=UTF8.jdbc:teradata://host/DBS_PORT=1025,DATABASE=Orders,CHARSET=UTF8我試圖了解這實(shí)際上是如何工作的。這是否意味著客戶端專門(mén)詢問(wèn)服務(wù)器它想要數(shù)據(jù)的字符編碼?如果實(shí)際數(shù)據(jù)在 DB 中以不同的字符編碼保存(比如 Shift_JIS),DB 服務(wù)器是否在將數(shù)據(jù)發(fā)送到客戶端之前執(zhí)行編碼轉(zhuǎn)換?(在這個(gè)例子中,從 SJIS 到 UTF-8 ?)
1 回答

桃花長(zhǎng)相依
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
這與 JDBC 沒(méi)有直接關(guān)系,但它是各個(gè) JDBC 驅(qū)動(dòng)程序的特定實(shí)現(xiàn)細(xì)節(jié)。并非所有驅(qū)動(dòng)程序/數(shù)據(jù)庫(kù)都允許您指定連接字符集。這可能是因?yàn)樗麄兊膮f(xié)議總是使用特定的字符集,或者每列的編碼是固定的并與數(shù)據(jù)一起通信。如果驅(qū)動(dòng)程序確實(shí)具有這樣的屬性,其影響將因驅(qū)動(dòng)程序/數(shù)據(jù)庫(kù)系統(tǒng)而異,甚至可能因特定數(shù)據(jù)庫(kù)、表甚至列而異。
不可能確切地概括這種設(shè)置對(duì)驅(qū)動(dòng)程序的作用。
我已經(jīng)發(fā)現(xiàn)很難描述我維護(hù)的 JDBC 驅(qū)動(dòng)程序的連接字符集的確切影響(和邊緣情況)......,更不用說(shuō)考慮/調(diào)查其他驅(qū)動(dòng)程序了。
添加回答
舉報(bào)
0/150
提交
取消