当用到socket来进行网络程序开发时,大多数情况下会遇到中文字符的发送与接收,这时若对发送的字符串用默认的方式进行处理,则一般会得到一堆乱码。

由于中文字符采用双字节表示,所以对含有中文的字符串的处理一定要按UNICODE编码方式进行处理,也就是说,使用socket发送中文字串时要事先将字串转成UNICODE格式的。

下面是简单的socket通信的代码。

//服务端代码

try

{

IPAddress MyIP = IPAddress.Parse(“127.0.0.1″);

TcpListener MyListener = new TcpListener(MyIP, Convert.ToInt16(“1235″));

MyListener.Start();

Socket MySocket = MyListener.AcceptSocket();

byte[] MyData = new byte[256];

MySocket.Receive(MyData);

this.richTextBox1.AppendText(System.Text.Encoding.Unicode.GetString(MyData));

UnicodeEncoding MyInfo = new UnicodeEncoding();

MySocket.Send(MyInfo.GetBytes(“From Server:你好!我是服务器”));

}

catch (Exception ex)

{

MessageBox.Show(ex.Message,“信息提示”,MessageBoxButtons.OK,MessageBoxIcon.Information);

}

//客户端代码

try

{

TcpClient MyClient = new TcpClient();

MyClient.Connect(“127.0.0.1″, Convert.ToInt16(“1235″));

Stream MyStream = MyClient.GetStream();

UnicodeEncoding MyInfo = new UnicodeEncoding();

byte[] MyData = new byte[256];

byte[] MySendByte = MyInfo.GetBytes(“From Client:你好!我是客户端”);

MyStream.Write(MySendByte, 0, MySendByte.Length);

MyStream.Read(MyData, 0, 256);

this.richTextBox1.AppendText(System.Text.Encoding.Unicode.GetString(MyData));

}

catch(Exception ex)

{

MessageBox.Show(ex.Message,“信息提示”,MessageBoxButtons.OK,MessageBoxIcon.Information);

}

此外,数据库中中文的存取也是一件令人头疼的事,其实要解决这个问题很简单,下面是一段SQL Server的代码:

try

{

SqlConnection MyConnect = new SqlConnection(m_ConnectionStrings);

//插入新纪录

string MySQL = string.Format(“INSERT INTO [BSM_SystemServiceInfoTable] VALUES ({0},N'{1}',N'{2}',N'{3}',N'{4}')”,AgentID, data[1], data[2], data[3], data[0]);

MyCommand = new SqlCommand(MySQL, MyConnect);

MyCommand.Connection.Open();

MyCommand.ExecuteNonQuery();

MyCommand.Connection.Close();

}

catch (System.Exception e)

{

MessageBox.Show(e.ToString ());

}

可以看到,SQL脚本命令中,所有的字符串参数前多了一个字符“N”,这个字符即声明用UNICODE方式编码,当然,要注意的就是,若字段的值可能含有中文时,必须将该字段类型声明为nchar、nvarchar、ntext,这里的n表示的意思是一样的。

您可能感兴趣的文章:Mysql5.5安装配置方法及中文乱码的快速解决方法MySql安装步骤图文教程及中文乱码的解决方案MySql中表单输入数据出现中文乱码的解决方法MySQL插入中文不乱码的5种方法简单解决Windows中MySQL的中文乱码与服务启动问题关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)解决springmvc+mybatis+mysql中文乱码问题PHP+MYSQL中文乱码问题Windows服务器MySQL中文乱码的解决方法Mysql彻底解决中文乱码问题的方案(Illegal mix of collations for operation)

c# mysql 汉字乱码_在C#和MySQL中存取中文字符时避免乱码的方法相关推荐

  1. c mysql 中文字符_在C#和MySQL中存取中文字符时避免乱码的方法

    当用到socket来进行网络程序开发时,大多数情况下会遇到中文字符的发送与接收,这时若对发送的字符串用默认的方式进行处理,则一般会得到一堆乱码. 由于中文字符采用双字节表示,所以对含有中文的字符串的处 ...

  2. php调试代码时var_dump( )打印中文字符时出现乱码解决方案

    php调试代码时var_dump( )打印中文字符时出现乱码解决方案 参考文章: (1)php调试代码时var_dump( )打印中文字符时出现乱码解决方案 (2)https://www.cnblog ...

  3. php发送邮件,标题是乱码,php的mail函数发送UTF-8编码中文邮件时标题乱码怎么办?...

    php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法:1.将subject里头的文字符合RFC 2047的规范:2.在headers中添加[content-type]:3.对用来发送邮件 ...

  4. dbvisualizer查询mysql中文乱码_使用PLSQL Developer和DbVisualizer查询oracle数据库时出现乱码...

    使用PLSQL Developer和DbVisualizer查询oracle数据库时,出现查询数据中文乱码情况. 查看了一下数据库编码格式 select * from v$nls_parameters ...

  5. java判断字符个数_使用Java判断字符串中的中文字符数量

    Java判断一个字符串str中中文的个数,经过总结,有以下几种方法(全部经过验证),可根据其原理判断在何种情况下使用哪个方法: 1. 1 char[] c =str.toCharArray();2 f ...

  6. python django mysql写入中文乱码_解决django 向mysql中写入中文字符出错的问题

    之前使用django+mysql建立的一个站点,发现向数据库中写入中文字符时总会报错,尝试了修改settings文件和更改数据表的字符集后仍不起作用.最后发现,在更改mysql的字符集后,需要重建数据 ...

  7. datax 导入数据中文乱码_四种方法处理MYSQL导入中文数据时的乱码问题 | 很文博客...

    我是用的最后一种方法,前面三种解决MYSQL导入数据乱码的方法没试过,很文博客推荐大家直接使用第四种方法处理MYSQL导入中文数据时的乱码问题. 首先在新建数据库时一定要注意生成原数据库相同的编码形式 ...

  8. Java通过正则剔除乱码_正则表达式 - 去掉乱码字符/提取字符串中的中文字符/提取字符串中的大小写字母 - Python代码...

    目录 1.乱码符号种类较少,用replace() 2.乱码字符种类较多,用re.sub() 3.提取字符串中的中文字符 4.提取字符串中的中文字符和数字 5.提取其他 数据清洗的时候一大烦恼就是数据中 ...

  9. 正则表达式 - 去掉乱码字符/提取字符串中的中文字符/提取字符串中的大小写字母 - Python代码

    目录 1.乱码符号种类较少,用replace() 2.乱码字符种类较多,用re.sub() 3.提取字符串中的中文字符 4.提取字符串中的中文字符和数字 5.提取其他 数据清洗的时候一大烦恼就是数据中 ...

最新文章

  1. 将十进制数转化成二进制数,计算其中1的个数
  2. 干粮 -- 计算机程序设计艺术(The Art of Computer Design) - 2
  3. 不是我吹,20M的压缩文件我只用了1秒!
  4. golang-flag的问题
  5. Android Kotlin 协程async
  6. efcore 更新关联表_如何在生产环境下用好EFCore
  7. Service Unavailable HTTP Error 503. The service is unavailable.
  8. 疫情之下,使用FRP实现内网穿透,远程连接公司电脑进行办公
  9. Visitor(访问者)--对象行为型模式
  10. asm字节码操作 方法的动态修改增加
  11. 道指mt4代码_道恩转债上市首日遭大股东清仓式减持!
  12. TCP/IP学习笔记
  13. OA系统中的HRM的发展和存在的误区,值得每一个HR学习
  14. PIC仿真器接口定义及连接注意事项
  15. excel 中行数据向下移动一行的方法
  16. 华为认证的含金量高吗?
  17. key_t键和ftok函数(转)
  18. Android架构组件Room功能详解,面试必问
  19. ios部署yolov5
  20. 社区热议淘宝开源的优化定制JVM版本:Tabao JVM

热门文章

  1. 在创业公司工作不划算了!
  2. Web 攻击越发复杂,如何保证云上业务高可用性的同时系统不被入侵?| 专家谈...
  3. Rust 入坑指南 | CSDN 博文精选
  4. 华为宣布方舟编译器将开源;​苹果秋季发布会定档9月10日;TypeScript 3.6 发布 | 极客头条...
  5. 代码英雄:波澜壮阔的操作系统之战(音频+长文)
  6. 为什么程序员应该避免间接代码?
  7. 昔日的 HTC 与三星,今日的苹果:寒冬过后手机厂商才会明白的潜规则
  8. 史上最强春节档来袭!Python 解读哪部影片值得一看?
  9. 网易考拉的服务架构如何从单体应用走向微服务化? | 技术头条
  10. 饿了别叫妈,叫阿里“爸爸”!