c#中的string只能保存unicode格式的字符串吗,我需要一个能保存utf-8字符串的变量,有没有其他办法?

问题描述

问题如题,c#中string如何保存utf-8编码的字符串

解决方案

解决方案二:
自己用Encoding编码
解决方案三:
问题描述清楚,到底什么需求不要拿自己拍脑袋想的方案来问
解决方案四:
用Encoding试过了,还是不行,只要结果集放在string变量里就自动转换成unicode了。我自己需要组合字符串的,把组合后的字符串保存在数据库中,数据库编码是utf-8的,字符串中包含汉字。
解决方案五:
引用3楼lihao123456的回复:

用Encoding试过了,还是不行,只要结果集放在string变量里就自动转换成unicode了。我自己需要组合字符串的,把组合后的字符串保存在数据库中,数据库编码是utf-8的,字符串中包含汉字。

版主的意思是让你用的时候Encoding,不是让你先Encoding再保存到string
解决方案六:
可以试试把字符串转成base64编码字符串,再存入数据库,只是读取和存储都要解析!而且base64字符串大很多貌似!
解决方案七:
持久化在数据库的时候是utf-8有什么关系呢?你用的时候在转成你要的编码
解决方案八:
数据存进数据库,用utf8还是unicode还是什么存那是数据库决定的,通常提供给你的provider已经把这块复杂度给封装了,压根不需要你转码。你所谓自己组合字符串,除非你数据库里相应字段是存byte的,你用encoding转换为字节数组去存
解决方案九:
不知道楼主用的什么数据库正常转码应该是数据库客户端的工作吧只要你发送的字符串客户端能认识,它能把它正确的发送给服务端,能够正确的存放进数据库文件里去,你就不需要纠结这些问题了具体还是先试试到底存进去的是不是乱码再想如何解决吧
解决方案十:
引用8楼Z65443344的回复:

不知道楼主用的什么数据库正常转码应该是数据库客户端的工作吧只要你发送的字符串客户端能认识,它能把它正确的发送给服务端,能够正确的存放进数据库文件里去,你就不需要纠结这些问题了具体还是先试试到底存进去的是不是乱码再想如何解决吧

是出了问题才来提问的。。。
解决方案十一:
是用的第三方插件连接的mysql,保存到数据库后的汉字就会乱码。
解决方案十二:
我的处理过程是这样的,从mysql读入出字符串,(有汉字),在重新修改后,使用string来保存,使用第三方插件libmysql中的ExecuteNonQuery存入数据库后字符就会乱码,不知道你们有没有碰到过类似问题。

时间: 2024-08-18 05:37:30

c#中的string只能保存unicode格式的字符串吗,我需要一个能保存utf-8字符串的变量,有没有其他办法?的相关文章

[经典面试题][百度]c++实现STL中的string类

题目 请用c++ 实现stl中的string类,实现构造,拷贝构造,析构,赋值,比较,字符串相加,获取长度及子串等功能. 代码 /*------------------------------------- * 日期:2015-03-31 * 作者:SJF0115 * 题目: 实现string类 * 来源:百度 * 博客: ------------------------------------*/ #include <iostream> #include <cstring> us

请问,如何将一个unicode格式的xml文件读取经过保存还保存为unicode

问题描述 我要将某些个xml中的某节点信息进行修改,然后将修改的xml文件保存至其他指定目录,可是问题就来了我程序中先用load读取每个xml文件,比如XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load(@"D:1aaa.xml");修改其中节点,然后保存,使用的命令为savexmlDoc.Save(@"C:aa.xml");可发现,保存之原来的文件格式由unicode变成了utf-8格式.我查阅了相关函数,XmlDocum

C#中的String.Format的格式参数详解

一.定义 String.Format是将指定的 String类型的数据中的每个格式项替换为相应对象的值的文本等效项. 如: (1)  代码如下 复制代码 string p1 = "Jackie"; string p2 = "Aillo"; Response.Write(String.Format("Hello {0}, I'm {1}", p1, p2)); (2)  代码如下 复制代码 Response.Write(String.Format(

全面理解Java中的String数据类型

数据|数据类型 1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new String()和new String("")都是申明一个新的空字符串,是空串不是null: 3. String str="kvill": String str=new String ("kvill");的区别: 在这里,我们不谈

string类型和Rtf格式的提问!

问题描述 在一个RichTextBox文本框中输入一串字符,比喻:"你好".然后再把RichTextBox这文本框的内容插入到SQL数据库中,此时,我把文本框的这个字符串----"你好",是以richTextBox1.Rtf的格式插到数据库里面去的.这样一来,我的问题也就来了:我想问,那我在应用程序中再输入一个"你好"与刚才插入到数据库中的"你好"想进行比较,如果相等的话,就把数据库相对应的那条数据给提取出来.但是在数据库中已

Java中的String对象数据类型全面解析_java

1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new String()和new String("")都是申明一个新的空字符串,是空串不是null; 3. String str="kvill"; String str=new String ("kvill");的区别: 在这里,我们不谈堆,也不谈栈,只

解析Java中的String对象的数据类型

  解析Java中的String对象的数据类型     [摘要] 本文将全面解析Java中的String对象的数据类型.[关键字] Java 技巧   1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new String()和new String("")都是申明一个新的空字符串,是空串不是null: 3. String str="

简单总结JavaScript中的String字符串类型_基础知识

String类型表示由0或多个16位Unicode字符组成的字符序列,即字符串.ECMAScript中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变.要改变某个变量保存的字符串,首先要销毁原来的字符串(此过程是在后台发生的),然后再用另一个包含新值的字符串填充该变量 字符字面量/转义序列: \n 换行 \t 制表 \r 回车 \b 空格 \f 换页符 \\ 斜杠 \' 单引号 \" 双引号 \xnn \unnn 字符串转换:两个方法 1.toString():只有null和un

详解C#中的string与String_C#教程

目录 小写 string 与大写 String 声明与初始化 string string 的不可变性 正则 string 与原义 string string 的转义序列 格式化字符串 操作子字符串 字符串的 null 与 ""(空) 可提高性能的 StringBuilder  序 字符串是 String 类型的对象,它的值是文本. 在内部,文本被存储为 Char 对象的顺序只读集合. C# 字符串末尾没有以 null 结尾的字符:因此 C# 字符串可以包含任意数目的嵌入式 null 字