一、php连接sql sever 2005 中文编码转换问题。

  这个问题是近期做Yii项目遇到的,而且php项目中用sql server做数据库,就是一个很坑的事,但没办法啊,客户是大爷,得听他的。(随便吐槽一下),回归正题。

  解决中文数据插入sql server 数据库乱码问题,我想到了三种方法,具体的介绍如下:

    1、直接将执行的sql语句进行编码。由UTF-8编码转成GBK编码。

$sql = 'INSERT INTO '.$params['table'].'('.$params['field'].') '.$params['value'];
$sql = iconv('utf-8', 'gbk', $sql);//将sql语句转码 /**
*
*以上代码还没有拼接数据,所以我们还得把数据进行转码
*/
$binds = iconv('utf-8', 'gbk', $binds); /**
*
*执行sql语句
*/ Yii::app()->db->createCommand($sql)->bindValues($binds)->execute();

  2、把表单数据打包成数组,进行编码转换

 public function changeIconv(array $data){
$arr = array();
foreach($data as $key=>$val){
$arr[$key] = iconv('utf-8', 'gbk', $val);
}
return $arr;

  3、直接在获取表单数据时就进行编码转换

 /**
* [RQP 获取参数值]
* @param [type] $params [参数名]
* @param string $default [默认值]
* @param boolean $isIconv [是否转码 false 默认不转码]
*/
protected function RQP($params, $default = '', $isIconv = false) {
if ($isIconv) {
$data = Yii::app()->request->getParam($params, $default);
$data = iconv('utf-8', 'gbk', $data);
return $data;
}
return Yii::app()->request->getParam($params,$default);
}
/************获取参数*******************/
private function getParams(){
$user = $this->RQP('username', '', true);
}

个人喜欢用第三种,只要封装好之后,不管那一个数据添加功能都可以用

 

随机推荐

  1. php Base64编码文件二进制流主要使用

    <?php header( "Content-type: image/jpeg"); //$filename='1.jpg'; //$content=file_get_con ...

  2. js模拟jq获取id

    js模拟jq获取id: (jquery)需要自己添加 <!DOCTYPE html> <html lang="en"> <head> <m ...

  3. WCF学习——构建第二个WCF应用程序(五)

    一.创建数据服务 1.在“解决方案资源管理器”中,使用鼠标左键选中“WcfService”项目,然后在菜单栏上,依次选择“项目”.“添加新项”. 2.在“添加新项”对话框中,选择“Web”节点,然后选 ...

  4. [转]安装PIL时注册表中找不到python2.7

    如果在win7x64安装python2.7的时候选择了all user,则安装PIL的时候会显示找不到python. 解决办法:复制下面的代码到一个.py文件并运行: # # script to re ...

  5. .net core建站踩坑记录

    系统:win10 VS版本:2017 .NET Core 版本: 1.1 零.读取配置文件 参考:http://www.tuicool.com/articles/QfYVBvi 此版本无需添加其他组件 ...

  6. list-列表功能介绍

    叨逼叨:列表是可变的,针对列表的改变,变得是列表本身,和字符串区别开来 #1.追加 # name = ['alex','eric','seven','qiqi'] # v = name.append( ...

  7. [HDU1512/ZOJ2334]Monkey King-左偏树-可合并堆

    Problem Monkey King Solution 本题是裸的左偏树,一个模板就可以过了.对于每个操作对节点先删除/2再合并. 注意本题在HDU上评测特别坑,是多组数据,而且经常出现MLE的情况 ...

  8. docker~通过vs2017的Dockerfile来生成镜像

    回到目录 Dockerfile这个东西我们之前是介绍过,它方便,快捷,易用,而在vs2017中也对docker进行了支持,而生成docker image的方式就是有用Dockerfile为基础的,在添 ...

  9. [luogu P3786]萃香抱西瓜 [spfa][状态压缩]

    题目背景 伊吹萃香(Ibuki Suika)正在魔法之森漫步,突然,许多西瓜(Suika)从四周飞来,划出了绚丽的轨迹.虽然阵势有点恐怖,但她还是决定抱走一些西瓜. 题目描述 萃香所处的环境被简化为一 ...

  10. 用Node.JS+MongoDB搭建个人博客(安装环境)(一)

    Node.JS是什么? Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. Nod ...