数据库中对于存储汉字和各种符号的字段应该定义为什么类型?

如果安装数据库服务的系统字符集发生变化的情况下,如何避免读取数据的乱码?情况一:访问终端的字符集未变化情况二:访问终端的字符集发生变化请大侠说的详细点使用什么类型?Nva... 如果安装数据库服务的系统字符集发生变化的情况下,如何避免读取数据的乱码?
情况一:访问终端的字符集未变化
情况二:访问终端的字符集发生变化
请大侠说的详细点
使用什么类型?Nvarcha 和Varchar在字符集发生变化时,是否会乱码掉。
展开
 我来答
badkano
推荐于2018-04-22 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部
需要定义成字符型,一般可用char、varchar、nchar、nvarchar等,具体需要看实际需求。
这几种类型的比较:
CHAR
CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间。
VARCHAR
存储变长数据,但存储效率没有CHAR高,如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么"+1"呢?这一个字节用于保存实际使用了多大的长度。
从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。
NCHAR、NVARCHAR
这两种从名字上看比前面三种多了个"N"。和char、varchar比较起来,nchar、nvarchar最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。
所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar
lin67152
推荐于2017-09-06 · TA获得超过310个赞
知道小有建树答主
回答量:122
采纳率:100%
帮助的人:36.4万
展开全部
首先定义的字段类型跟显示乱不乱码没有关系
会出现乱码的原因无非是数据库服务器跟客户端机器的字符集不一样
所以在搭建一个数据库服务器时,应该要先设定好数据库服务器的字符集,通常会选用UTF8,客户端在开发的时候也要跟他们协商好,要使用数据库服务器可以识别的字符集,比如也用UTF8,这样就不会出现数据乱码的问题。
望采纳!
追问
假如大家都可以协商,跟现有不能发生变化的服务器协商的话,该多好
追答
一般都是客户端遵循服务器的字符集..
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cf38862
2013-05-22 · 超过77用户采纳过TA的回答
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:141万
展开全部
Nvarchar,如果有特殊字符的话,会产生乱码.不知text类型会不会产生乱码,没有试过,你可以试一下,但(N)varchar会产生乱码地
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
腾飞yyds
2013-05-22 · TA获得超过451个赞
知道小有建树答主
回答量:587
采纳率:50%
帮助的人:261万
展开全部
定义为字符串啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自小雷山天资聪颖的黄忠
2015-04-25 · TA获得超过208个赞
知道小有建树答主
回答量:187
采纳率:100%
帮助的人:87.9万
展开全部
类型是varchar,然后编码还是 utf-8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式