数据库的Char、Vachar类型可以兼容汉字,但特殊字符不行,在保存包含有特殊字符的字符串、正文时,会将特殊符号替换成一个”?”号。

例如: “基础教育课程手机报•特刊” == 》 “基础教育课程手机报?特刊”

解决办法是将字段改成NChar,NVarchar等类型,在入库的时候每个字符串插入前都加入一个N,如N’lily’、N’Male’,兼容性会更好,作为Nvarchar字段,这是一种推荐做法!

小贴士:

char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。因为是固定长度,所以速度效率高。

Varchar类型:Varchar 的类型不以空格填满,比如varchar(100),但它的值只是”qian”,则它的值就是”qian” 而char 不一样,比如char(100),它的值是”qian”,而实际上它在数据库中是”qian “(qian后共有96个空格,就是把它填满为100个字节)。

由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!

VARCHAR存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。

Nchar类型和Nvarchar类型是怎么一回事呢?为了与其他多种字符的转换,如中文,音标等,对每个英文(ASCII)字符都占用2个字节,对一个汉字也占用两个字节,所有的字符都占用2个字节。

例如:

varchar(n):变长型字符数据类型,存储最长长度为8,000 个字符。

举个例子: insert a select ‘木子a’ — 存储长度为5个字节,余下的3个字节全部释放 insert a select ‘木神易 —-存储长度为6个字节,余下的2个字节全部释放 —意思是varchar变长字符数据类型与存储数据的实际长度是一致的

nvarchar(n):可变长度 Unicode 数据,其最大长度为 4,000 字符。 字节的存储大小是所输入字符个数的两倍, 就是说它是双字节来存储数据的。 如果存储数据如果存在单字节时,它也是以双字节来占用存储空间的。

varchar一般适用于英文和数字,Nvarchar适用中文和其他字符,其中N表示Unicode常量,可以解决多语言字符集之间的转换问题

存储mysql数据存在特殊字符时处理_SQL数据库对于保存特殊字符的解决办法相关推荐

  1. 我艹,MySQL数据量大时,delete操作无法命中索引。

    来自:Java面试那些事儿 最近,在脉脉上看到一个楼主提出的问题:MySQL数据量大时,delete操作无法命中索引:并且还附上了相关案例截图. 最终,楼主通过开启MySQL分析优化器追踪,定位到是优 ...

  2. MySql数据库主键外键与数据库设计

    MySql数据库主键外键与数据库设计 首先要指出的: 列.字段.属性是一个概念 行.记录.元组是一个概念 MySQL数据库CONSTRAINT约束:非空约束,唯一约束,主键约束,外键约束 show c ...

  3. [转]Silverlight在调用wcf时传输数据过大返回Not Found的解决办法

    原文地址:http://www.cnblogs.com/gavinyao/archive/2012/04/17/2454495.html Silverlight在调用wcf时传输数据过大返回Not F ...

  4. 计算机简单故障时的排除方法,电脑简单故障排除解决办法大全

    电脑简单故障排除解决办法大全 一.电脑罢 工了?听报警声就可以处理故障! 在使用电脑的时候,我们会经常遇到开机时电脑黑屏没有反应的情况,普通的电脑用户而对这样的故障实在是无从下手,但是一般电脑会有一个 ...

  5. win11系统安装oracle11g时遇到INS-13001环境不满足最低要求解决办法

    1.点击setup后稍等弹出此窗口,关闭掉: 2.找到文件中红笔画出的两个文件,用记事本打开 3.将以下代码粘贴到在<CERTIFIED_SYSTEMS>标签最后,如图 <OPERA ...

  6. [Oracle] “表中有数据,但select count(*)的结果为0”问题的解决办法

    [Oracle] "表中有数据,但select count(*)的结果为0"问题的解决办法 参考文章: (1)[Oracle] "表中有数据,但select count( ...

  7. win8 远程桌面时提示凭证不工作问题的终极解决办法

    原文 win8 远程桌面时提示凭证不工作问题的终极解决办法 环境说明 远程办公电脑(放置于公司.自用办公电脑.win8系统) 远程连接客户机(放置于家中.家庭日常所用.win8系统) 故障现象 最近在 ...

  8. sqlplus登录时遇到的ORA-12560: TNS: 协议适配器错误解决办法

    sqlplus登录时遇到的ORA-12560: TNS: 协议适配器错误解决办法 在windows下使用lsnrctl start启动监听之后,然后使用sqlplus登录的时候遇到了ORA-12560 ...

  9. 使用Lock and Load X 插件时导致Final Cat Pro意外退出的解决办法

    Lock and Load X是一款Mac平台上的视频稳定防抖插件,适用于FCPX.PR以及AE软件.lock and load x Mac版比PR和FCPX自带的防抖插件,功能更强大,效果更加突出, ...

最新文章

  1. 用Duplex实现消息广播
  2. UI事件与内容,舞台与演员
  3. 为朋友写的一个投票功能的提交代码
  4. Hopfield神经网络和TSP问题
  5. sap 事务代码跳过权限检查
  6. How to Build Your Own Blockchain Part 4.1 — Bitcoin Proof of Work Difficulty Explained
  7. 什么?你竟然还没有用这几个chrome插件?
  8. 动态规划经典算法--最大子段和
  9. ipv6地址为什么显示两个_【聚焦】IPv6进行时,别被这些因素绊住脚
  10. zkcli远程连接_高级框架第一天RPC:远程过程调用
  11. 三坐标测量圆直径_多台三坐标测量机联动测量方法的研究
  12. MySQL 性能优化的 9 种方式
  13. IOS UI 第一篇:基本UI
  14. 【ctags/cscope/project安装使用】给神编辑器vim添加新的翅膀
  15. Windows Server 2008下IIS 7配置ASP+ACCESS环境
  16. aspose 转pdf表格大小乱了_关于Aspose.Words转PDF简体中文排版问题申明
  17. python辅助开发工具_Python开发工具:WingPro 7
  18. 【ADRC】自抗扰控制
  19. matlab气体流速,气体流速的测定方法.pdf
  20. TFT LCD液晶屏显示原理

热门文章

  1. 一步步学习EF Core(3.EF Core2.0路线图)
  2. rest_framework06:自动生成路由\action使用\认证
  3. Mysql数据库安全性问题【防注入】
  4. Windows 7旗舰版安装Visual Studio 2013 Ultimate的系统必备及注意事项
  5. Android之提示Method return type must not include a type variable or wildcard:
  6. C和指针之字符串简单实现 strcpy、strcat、strstr函数
  7. LeetCode之Search Insert Position
  8. C和C++之用extern “C“实现它们之间的互调
  9. ip校验和及udp校验和的计算方法
  10. 【前端就业课 第一阶段】HTML5 零基础到实战(五)基础元素