C#中字符编码:sql语句中包含中文字符转换为utf8编码
2013-10-09 21:52
405 查看
这个问题困扰了我好长时间,终于解决了。postgreSQL数据库使用的是utf8编码,如果执行的sql语句中包含中文字符需要字符转换,但是一直转换失败。
如下代码实现utf8的转换
实现参考自如下代码
如下代码实现utf8的转换
string sql = string.Format("update test_temp set name = '{0}' where id = {1}", "测试数据", "1"); Encoding utf8= Encoding.UTF8; Encoding defaultCode= Encoding.Default; byte[] defaultBytes = utf8.GetBytes(sql); byte[] utf8Bytes = Encoding.Convert(defaultCode, utf8, defaultBytes); char[] utf8Chars = new char[utf8.GetCharCount(utf8Bytes, 0, utf8Bytes.Length)]; utf8.GetChars(utf8Bytes, 0, utf8Bytes.Length, utf8Chars, 0); string utf8String = new string(utf8Chars);
实现参考自如下代码
static void Main() { string utf8String = "骞垮憡涓戦椈"; // Create two different encodings. Encoding utf8= Encoding.UTF8; Encoding defaultCode= Encoding.Default; // Convert the string into a byte[]. byte[] utf8Bytes = default.GetBytes(utf8String ); // Perform the conversion from one encoding to the other. byte[] defaultBytes = Encoding.Convert(utf8, defaultCode, utf8Bytes ); // Convert the new byte[] into a char[] and then into a string. // This is a slightly different approach to converting to illustrate // the use of GetCharCount/GetChars. char[] defaultChars = new char[defaultCode.GetCharCount(defaultBytes , 0, defaultBytes .Length)]; defaultCode.GetChars(defaultBytes , 0, defaultBytes .Length, defaultChars , 0); string defaultString = new string(defaultChars ); // Display the strings created before and after the conversion. Console.WriteLine("Original string: {0}", utf8String); Console.WriteLine("Ascii converted string: {0}", defaultString); //或者如下: byte[] buffer1 = Encoding.Default.GetBytes(utf8String ); byte[] buffer2 = Encoding.Convert(Encoding.UTF8, Encoding.Default, buffer1, 0, buffer1.Length); string strBuffer = Encoding.Default.GetString(buffer2, 0, buffer2.Length); }
相关文章推荐
- C#: 中文和UNICODE字符转换方法 及仿安居客地图实现。。。错误 GMap2未定义 解决办法 -VB 中文转为UNICODE字符
- sql计算字符串中包含中文、英文字符长度
- SQL语句 保留中文字符以及去掉中文字符
- .Net/C#/VB/T-SQL/Java/Script 实现: 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)
- .Net/C#/VB/T-SQL/Java 实现: 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)
- SQL判断某列中是否包含中文字符或者英文字符
- C#&Sql获取中文字符拼音首字母的方法
- Java 判断语句中是否包含中文字符
- SQL判断某列中是否包含中文字符或者英文字符
- 把中文字符转换成Utf8编码
- 包含中文字符的QString对象转换为python的string对象的方法
- 代码中执行sql语句访问mysql,无法匹配中文字符的问题
- SQL判断某列中是否包含中文字符或者英文字符
- SQL只查询包含中文的语句
- c#中执行多条sql语句【ORA-00911: 无效字符】
- SQL判断某列中是否包含中文字符
- C#将SQL语句转换为分页SQL和获取记录数SQL
- NSString 中包含中文字符时转换为NSURL
- NSString 中包含中文字符时转换为NSURL
- 使用C#对MySQL数据库执行存在中文的SQL语句,不返回值的问题