android sqlite3 中文乱码问题,恳求~

android sqlite3 中文乱码问题,恳求~,第1张

楼主,插入字符的编码和读出时用的编码要一致,就是说

假设,数据库中数据是你通过android代码插入,以GB2312编码格式,如:

db.execSQL("insert into question_tb values(?,?,?,?,?,?,?)",new String(val,"gb2312"))

插入到表:

"Create table IF NOT EXISTS question_tb(" +

"code int," +

"is_finished int," +

"is_english int,"+

"pic_name varchar(64)," +

"ans_back BLOB," +

"ans_true varchar(64)," +

"info int"+

")"

读出就是:

byte[] val = cursor.getBlob(cursor.getColumnIndex("ans_back"))

            String sn

try {

    sn = new String(val,"gb2312")

} catch (UnsupportedEncodingException e) {

e.printStackTrace()

}

就是说,插入和读取要么都做转换,要么都不做(android默认UTF-8格式)。

插入字符的编码和读出时用的编码要一致,就是说:

假设,数据库中数据是你通过android代码插入,以GB2312编码格式,如:

1

<a href="https://www.baidu.com/s?wd=db&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9rju-ujDsrycznWn1PW630AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtdP1f3Pjm1PHD" target="_blank" class="baidu-highlight">db</a>.execSQL("insert into question_tb values(?,?,?,?,?,?,?)",new String(val,"gb2312"))

插入到表:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

"Create table IF NOT EXISTS question_tb(" +

"code int," +

"is_finished int," +

"is_english int,"+

"pic_name varchar(64)," +

"ans_back <a href="https://www.baidu.com/s?wd=BLOB&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9rju-ujDsrycznWn1PW630AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtdP1f3Pjm1PHD" target="_blank" class="baidu-highlight">BLOB</a>," +

"ans_true varchar(64)," +

"info int"+

")"

读出就是:

1

2

3

4

5

6

7

8

9

10

11

12

13

byte[] val = cursor.get<a href="https://www.baidu.com/s?wd=Blob&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9rju-ujDsrycznWn1PW630AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtdP1f3Pjm1PHD" target="_blank" class="baidu-highlight">Blob</a>(cursor.getColumnIndex("ans_back"))

String <a href="https://www.baidu.com/s?wd=sn&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9rju-ujDsrycznWn1PW630AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtdP1f3Pjm1PHD" target="_blank" class="baidu-highlight">sn</a>

try {

<a href="https://www.baidu.com/s?wd=sn&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9rju-ujDsrycznWn1PW630AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtdP1f3Pjm1PHD" target="_blank" class="baidu-highlight">sn</a>= new String(val,"gb2312")

} catch (UnsupportedEncodingException e) {

e.printStackTrace()

}

就是说,插入和读取要么都做转换,要么都不做(android默认UTF-8格式)。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/sjk/9393372.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存