您的位置:首页 > 编程语言 > PHP开发

C#通过PHP向MySQL插入数据的编码问题

2015-08-06 20:22 615 查看
之前的一片文章介绍了C#怎么通过Apache+PHP搭建的WebServer向另一台上服务器上的MySQL中插入数据。

实际的操作中出现了一些问题,如果C#发送的数据中有中文,数据就根本没有被插入到数据库中;但是将需要插入的同样的数据直接写在PHP的代码中就可以插入到数据库。

比如我的C#的RequestURL是:

http://hhueccz.imwork.net:30242/insert.php?num=’10001’&name=’张三’&sex=’男’&age=‘23’


PHP通过‘GET’的方式获取’num’,’name’,‘sex’,’age’:

$num  = $_GET[‘num’];
$name = $_GET[‘name’];
$sex  = $_GET[‘sex’];
$age  = $_GET[‘age’];


执行:

$sqlText = “insert into student values (‘$num’, ‘$name’, ‘$sex’, ‘$age’)”;
mysql_query($sqlText);


这两条语句,但是数据库中并没有新增一条记录。

这是因为C#中默认的汉字编码是“UTF-8”,而MySql的默认编码已经被另一个做APP的人改成了“gbk”格式的,所以要想让C#发送过来的数据插入到数据库中,有两种方式,

*1.在C#中将中文的编码改成“gbk”的;

2.在PHP中将C#发送过来的数据中的中文编码改成“gbk”的。*

然而我在C#中奖中文的编码改成“gbk”的并没有什么用,在加上有两个不同的语言的不同的客户端都要调用PHP这边的接口,所以就直接在PHP中改变字符的编码:

$name = iconv(“utf-8”, “gbk”, $name);
$sex = iconv(“uft-8”, “gbk”, $sex);


这时候,C#发送的数据就能够成功插入到数据库中了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: