在C#和MySQL中存取中文字符时避免乱码的方法_MySQL
当用到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表示的意思是一样的。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide d'Active Directory avec C#. Nous discutons ici de l'introduction et du fonctionnement d'Active Directory en C# ainsi que de la syntaxe et de l'exemple.

Guide du générateur de nombres aléatoires en C#. Nous discutons ici du fonctionnement du générateur de nombres aléatoires, du concept de nombres pseudo-aléatoires et sécurisés.

L'un des changements majeurs introduits dans MySQL 8.4 (la dernière version LTS en 2024) est que le plugin « MySQL Native Password » n'est plus activé par défaut. De plus, MySQL 9.0 supprime complètement ce plugin. Ce changement affecte PHP et d'autres applications

Guide de la vue Grille de données C#. Nous discutons ici des exemples de la façon dont une vue de grille de données peut être chargée et exportée à partir de la base de données SQL ou d'un fichier Excel.

Guide des modèles en C#. Nous discutons ici de l'introduction et des 3 principaux types de modèles en C# ainsi que de ses exemples et de l'implémentation du code.

Guide des nombres premiers en C#. Nous discutons ici de l'introduction et des exemples de nombres premiers en c# ainsi que de l'implémentation du code.

Guide des services Web en C#. Nous discutons ici d'une introduction aux services Web en C# avec l'utilisation de la technologie, ses limitations et des exemples.

Guide de Factorial en C#. Nous discutons ici de l'introduction de factorial en c# ainsi que de différents exemples et de l'implémentation du code.
