C#通过PHP向MySQL插入数据的编码问题
2015-08-06 20:22
615 查看
之前的一片文章介绍了C#怎么通过Apache+PHP搭建的WebServer向另一台上服务器上的MySQL中插入数据。
实际的操作中出现了一些问题,如果C#发送的数据中有中文,数据就根本没有被插入到数据库中;但是将需要插入的同样的数据直接写在PHP的代码中就可以插入到数据库。
比如我的C#的RequestURL是:
PHP通过‘GET’的方式获取’num’,’name’,‘sex’,’age’:
执行:
这两条语句,但是数据库中并没有新增一条记录。
这是因为C#中默认的汉字编码是“UTF-8”,而MySql的默认编码已经被另一个做APP的人改成了“gbk”格式的,所以要想让C#发送过来的数据插入到数据库中,有两种方式,
*1.在C#中将中文的编码改成“gbk”的;
2.在PHP中将C#发送过来的数据中的中文编码改成“gbk”的。*
然而我在C#中奖中文的编码改成“gbk”的并没有什么用,在加上有两个不同的语言的不同的客户端都要调用PHP这边的接口,所以就直接在PHP中改变字符的编码:
这时候,C#发送的数据就能够成功插入到数据库中了。
实际的操作中出现了一些问题,如果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#发送的数据就能够成功插入到数据库中了。
相关文章推荐
- php5中虚函数的实现
- php能把函数名作为参数传递吗?
- xhprof(PHP性能分析工具)
- php中经常使用的string函数
- phpstorm开发环境搭建流程
- phpstorm 无法输入中文
- PHP编译过程中常见错误信息的解决方法
- zend 集成svn
- ZH奶酪:LAMP环境中如何重新部署一个Yii2.0 web项目
- [php] thinkphp RBAC解析
- 【转】2013 PHP技术峰会《Bug Free的PHP开发实践分享》摘录
- PHP 5.3以上版本推荐使用mysqlnd驱动
- Windows(2003、xp)下配置NTP时间服务器
- Laravel 5文档阅读摘要
- php的冒泡算法
- PHP文件编程
- PHP fopen()参数
- PHP fwrite()写入文件
- PHP文件上传
- thinkphp模块