zoukankan      html  css  js  c++  java
  • sql server 数据库查询 json 数据乱码

    sql server 数据库使用正常,页面没有乱码,但是在一张表里的一个属性(属性类型:varchar(max))存放了 json 字符串,并且查出来后就是乱码,导致反 json 序列化报如下错:

    com.fasterxml.jackson.core.JsonParseException: Unexpected character ('≻' (code 8827 / 0x227b)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
     at [Source: (String)"≻敲瑣晩捩瑡潩䵮慥畳敲≳∺ꊷ쓎ꊷ쓎ꆰⰢ瀢慬䍮浯汰瑥呥浩≥∺〲〲〭ⴹ㌲ㄠ㨲〰〺∰�"; line: 1, column: 2]
    	at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1804)
    	at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:693)
    	at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:591)
    	at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1902)
    	at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:757)
    	at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4141)
    	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4000)
    	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3004)
    

    解决方法是将存储 json 字符串的属性类型改成:nvarchar(max)。

    varchar 存储的是非 Unicode 的字符。

    nvarchar 存储的是 Unicode 字符。

    那为什么其它 varchar 属性的中文没有乱码呢,可能是由于数据库设置的字符编码是 Chinese_PRC_CI_AS 中文字符集。

    select SERVERPROPERTY(N'edition') as Edition --数据版本,如企业版、开发版等
    ,SERVERPROPERTY(N'collation') as Collation --数据库字符集
    ,SERVERPROPERTY(N'servername') as ServerName --服务名
    ,@@VERSION as Version --数据库版本号
    ,@@LANGUAGE AS Language --数据库使用的语言,如us_english等
    
    SELECT COLLATIONPROPERTY( 'chinese_prc_ci_as', 'codepage' )
    
  • 相关阅读:
    JSON.parse()和JSON.stringify()
    对于火狐浏览器中title不能换行自动变成...怎么解决的?
    Python中文编码过程中遇到的一些问题
    【Java并发编程实战】—–“J.U.C”:ReentrantLock之二lock方法分析
    PHP CURL 中文说明
    Windows系统下正确安装MongoDB
    js笔试题
    记录真实想法,在路上不断前行——关于工作,学习,职场
    Ansible@一个高效的配置管理工具--Ansible configure management--翻译(十一)
    Java第四次作业
  • 原文地址:https://www.cnblogs.com/wu726/p/13654640.html
Copyright © 2011-2022 走看看