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

数据库的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常量,可以解决多语言字符集之间的转换问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

接口 Swagger 部分Web API的隐藏

背景Swagger是目前最受欢迎的REST APIs文档生成工具,同时也是API的在线测试工具。功能强大谁用谁知道。我就不用在这里推广它了。今天要解决的问题是:如果让一些特定的API接口在Swagger中不显示,即从Swagger中过滤掉一些不想展示的接口&#…

mysql流程控制_Mysql之流程控制结构

顺序结构:程序从上往下依次执行分支结构:程序从两条或多条路径中选择一条去执行循环结构:程序在满足一定条件的基础上,重复执行一段代码一、分支结构1、if函数功能:实现简单的双分支语法:if(表达式1, 表达式…

文件共享服务器第二部,第二章-构建Samba文件共享服务器.docx

洛阳鸿卓国际IT洛阳鸿卓国际IT教育培训中心姓名: 梁冬辉时间:2012章实验报告所在班级: T1181月16实 验 任 务日Linux服务器版系统的地址为Win dows系统的地址为网络拓扑检查smb服务消息是否安装[rootocaThOSt /]# cd /unt/Asianux/RPMS/i roo…

「译」 .NET 5 新增的Http, Sockets, DNS 和 TLS 遥测

.NET 一直在稳定的增加和改善对应用程序进行跨平台的诊断分析,在.NET Core 3.0, 我们看到了 EventCounters[1] 的介绍,用于观察和分析指标测量。我最近在几个 .NET Core 的应用程序中使用 counters,来跟踪服务一段时间内 http 的请…

服务器磁盘系统,服务器磁盘阵列与操作系统

服务器磁盘阵列与操作系统 内容精选换一换硬件要求如表1所示。操作系统要求如表2所示。上表中所需Ubuntu下载地址:服务器1:Ubuntu 18.04.1镜像包、Ubuntu 16.04.4 镜像包。服务器2:Ubuntu 16.04.3 镜像包。在安装操作系统过程中“选择软件列表…

Prism for WPF 搭建一个简单的模块化开发框架

站长今天发现一个好项目,看原文贴图挺不错的,好项目应该让更多人知道,特别是该项目使得Prism搭建,网上使用prism做的开源成熟项目不多,这个值得大家研究。看项目gitee仓库截图,项目不错,star太少…

mysql怎么访问用户B_MySQL访问控制和用户管理

访问控制你需要给用户提供他们所需的访问权,且仅提供他们所需的访问权。这就是所谓的访问控制,管理访问控制需要创建和管理用户账号。多数用户只需要对表进行读和写,但少数用户甚至需要能创建和删除表;某些用户需要读表&#xff0…

探索 .Net Core 的 SourceLink

介绍Source Link是一组软件包和一个规范, 它将一些元数据添加到PDB文件,以将本地文件重新映射到GitHub上的文件,因此Visual Studio可以在这需要时下载文件, 该项目的目的是可以为使用Nuget安装软件的用户提供源代码调试, Microsoft库&#xf…

mysql group by 范围_MySQL 按照范围/等级 进行Group By

我们要做一张报表表格,从mysql里取出数据,然后按等级分组,如何实现呢?MySQL 示例 SQL:SELECTftime,sum(cost) as cost,count(advertiser_id) as aduser_num,sum(pv) as pv,sum(vc) as vc,CASEWHEN cost>100000 THEN ‘1’WHEN …

「译」 用 Blazor WebAssembly 实现微前端

原文作者: Wael Kdouh原文链接:https://medium.com/waelkdouh/microfrontends-with-blazor-webassembly-b25e4ba3f325我聊下最近我在做的事情,然后分享下在Blazor WebAssembly 微前端的实现细节,这篇文章是我的一些心得,以及一个示…

ubuntu mysql集群搭建_ubuntu server部署mysql集群

简介[说明本次部署的内容,目的等等]本部署文档的目的是如何在ubuntu server上进行mysql的群集部署。前期准备在进行本文档操作前,需要完成如下前期步骤:1.安装3台ubuntu server服务器;Server1: ndbd 192.168.68.5Server2: ndbd 19…

使用 dotnet-monitor 分析.NET 应用程序

dotnet-monitor 是 .NET Core 命令行接口 (CLI) 工具, 可以很方便的在dotnet环境中分析我们的应用程序,需要注意的是,目前它还只是一个实验性的工具在这之前,我们使用的有 dotnet-counters,dotnet-dump 和 dotnet-trace&#xff0…

mysql数据库查看用户名_mysql怎么查看用户名?

我们在使用mysql的时候,有时候需要来查看当前用户。本篇文章将和大家讲述mysql怎么查看用户名,感兴趣的朋友可以了解一下。启动数据库:[rootserver ~]# mysqld_safe &[1] 3289[rootserver ~]# 130913 08:19:58 mysqld_safe Logging to /u…

如何实现 ASP.NET Core WebApi 的版本化

Web API 的版本化可以尽量保证在相同url情况下保留一个 api 的多个版本,通常一个 webapi 会有多个client,这些client包括:app,web,html5,crawl 等等同构或者异构的平台,当 api 升级之后&#xf…

mysql查询重复的名字_Mysql中like用法:查询名字中含有风字的学生信息

一、表名和字段–1. 学生表 student (s_id,s_name,s_birth,s_sex) –学生编号,学生姓名,出生年月,学生性别–2. 课程表 course (c_id,c_name,t_id) –课程编号,课程名称,教师编号–3. 教师表 teacher (t_id,t_name) –…

mysql单行数据64k_字段数据大于64K的解决方案 | 学步园

方法一:在SQL Server Management Studio配置 max text repl size 选项:1、在对象资源管理器中,右键单击服务器并选择“属性”。2、单击“高级”节点。3、在“杂项”下,将“最大文本复制大小”选项更改为所需的值。方法二&#xff…

一次Task.Run异常问题的排查

最近在测试一个功能代码时发现一个非常奇怪的问题,主要是Task.Run引起一些不符合逻辑的错误,以下针对这一问题排查的总结。问题代码可以建个控制台程序来运行以下代码class Program{static User user new User();static void Main(string[] args){for (…

git maven 一键部署_Jenkins Git Maven搭建自动化部署项目环境 邮件通知

简介折腾了两个晚上,趁着今晚比较有空,把jenkinsgitmaven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.com/jacky- lulu/cxf_demo-Maven-Webapp)系统:centos6.5maven: Apache Maven 3.3…

在.NET Core 中收集数据的几种方式

APM是一种应用性能监控工具,可以帮助理解系统行为, 用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题, 通过汇聚业务系统各处理环节的实时数据,分析业务系统各事务处理的交易路径和处理时间,实现对应…

改进你的代码-扩展了一下IEnumerableT

背景今天用EF写东西,觉得IEnumerable里面写where()条件老是写if判断很麻烦,这样:if (!string.IsNullOrWhiteSpace(key)){list list.Where(u > u.Name.Contains(key)).ToList();}if (!string.IsNullOrWhiteSpace(key)){list list.Where(u…