第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

雙編碼 UTF-8 字符串 - MySql、Hibernate

雙編碼 UTF-8 字符串 - MySql、Hibernate

慕運(yùn)維8079593 2021-09-03 13:03:57
我們在使用 Hibernate 使用 Base64 編碼后將字符串保存在 MySQL DB 中。以下是執(zhí)行此操作的代碼:    @Basic    @Column(name = "name", nullable = false)    @ColumnTransformer(read = "FROM_BASE64(name) ", write ="TO_BASE64(?)")    public String getName()現(xiàn)在,當(dāng)我保存rotebühlstr 時,它會以cm90ZWLDvGhsc3Ry 的形式保存在數(shù)據(jù)庫中。當(dāng)我在終端上打印它時,它顯示為rotebühlstr,而它應(yīng)該是rotebühlstr這是一個dropwizard項(xiàng)目,mysql連接的config.yaml如下:      properties:      charSet: UTF-8      characterEncoding: UTF-8      useUnicode: true      hibernate.dialect: org.hibernate.dialect.MySQL5InnoDBDialect      hibernate.jdbc.batch_size: 100      hibernate.envers.audit_table_suffix: "_aud"      hibernate.id.new_generator_mappings: falseMySQL 列描述:namevarchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,    mysql> show variables like 'character_set_%';    +--------------------------+---------------------------------------     --------------------+    | Variable_name            | Value                                                         |    +--------------------------+---------------------------------------     --------------------+    | character_set_client     | utf8mb4                                                       |    | character_set_connection | utf8mb4                                                       |    | character_set_database   | utf8mb4                                                   觀察:在我同事的本地設(shè)置中,這工作正常。在那里,java/hibernate 正在處理 latin1 而不是 UTF-8 中的輸入字符串。因此,rotebühlstr在 DB 中編碼為cm90ZWL8aGxzdHI=并正確解碼為rotebühlstr。^這是由于 character_set_server 的差異而發(fā)生的。它在我的本地設(shè)置為 latin1,在同事本地設(shè)置為 utf-8。到目前為止我們嘗試過的:嘗試將“接受字符集”作為 latin1 發(fā)送。沒用。修改 config.yaml 文件以更改 mysql 的字符集設(shè)置。沒用我現(xiàn)在可以做什么:我可以編寫一個用于編碼和解碼的包裝層并停止使用@ColumnTransformer。這樣問題就可以解決了。
查看完整描述

2 回答

?
ibeautiful

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個贊

它適用于您的同事,但不適用于您的終端,因?yàn)槟呐c latin1 字符集連接,即使數(shù)據(jù)庫和字段可能在 utf8mb4 中。


您想找到您的 mysql 配置并在它們的部分中添加這些選項(xiàng)。如果它們丟失,則創(chuàng)建這些部分。


[mysql]

default-character-set=utf8mb4


[client]

default-character-set=utf8mb4


[mysqld]

character_set_server = utf8mb4

collation_server = utf8mb4_general_ci

退出任何客戶端,重新啟動服務(wù)器,你應(yīng)該沒問題。同樣從現(xiàn)在開始,當(dāng)你執(zhí)行 ashow create database或者show create table你會看到它是錯誤的編碼。


查看完整回答
反對 回復(fù) 2021-09-03
?
喵喵時光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個贊

我有一次遇到字符集問題,唯一可以解決問題的字符集是 utf8mb4。我記得問題出在 utf8 不能支持某些字符。

查看完整回答
反對 回復(fù) 2021-09-03
  • 2 回答
  • 0 關(guān)注
  • 251 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號