PHP发送移动MAS短信乱码的解决方法

项目中需要使用到移动代理MAS短信的接口开发,但是厂家提供的开发包没有PHP的,只能使用DB接口,直接操作MYSQL。但是在短信发送后,手机接收到的短信确实乱码,琢磨了很久,大致判断应该是字符编码的问题。沿着这个方向不断琢磨、实验,最终找出了原因。

1、登录到mas机的mysql数据库,

使用命令:show variables like "%char%";

查看mysql数据库的字符编码:

2、php使用如下:

mysql_connect(‘IP:3306‘,‘user‘,‘pwd‘);

mysql_select_db(‘mas‘);

mysql_query("set names latin1;");

mysql_query(mb_convert_encoding("insert into api_mt_db01(mobiles,content)values(‘".$mobiles."‘,‘".$content."‘);", "GB2312","UTF-8"));

其中set names latin1等同于

SET character_set_client = latin1;

SET character_set_results = latin1;

SET character_set_connection = latin1;

3、项目中的字符编码是UTF-8,运行环境是windows 2008 ,其字符编码是GB2312,

由于latin1和utf8字符集不兼容,转换不可逆,所以必须把utf8转成gb2312,再把GB2312转成latin1

所以信息输入路径:app->os->client->connection->mysql,编码编码转换过程utf8->gb2312->latin1->latin1->latin1

时间: 2024-08-12 12:45:52

PHP发送移动MAS短信乱码的解决方法的相关文章

移动MAS短信平台发送短信

MAS短信平台发送短信分为两种方式 参考文档下载 一.sdk调用 using mas.ecloud.sdkclient; using System; namespace 短信发送 { class Program { private static Client client = Client.instance; static void Main(string[] args) { string url = "";//身份认证地址,向客户经理获取. string apId = "&

【安卓笔记】通过发送特定的短信远程控制手机

实现效果: 1.发送指令#*location*#,可以远程获取到手机的地理位置(经纬度),并以短信的形式返回. 2.发送指令#*locknow*#,可以远程锁屏并设置锁屏密码. 实现原理: 1.注册广播接受者,监听手机收到的短信,并对符合要求的特定短信进行拦截和处理. 2.通过LocationManager获取地理位置. 3.使用DevicePolicyManager实现锁屏.设置锁屏密码等操作. 步骤: 1.创建一个可以获取地理位置的工具类: package cn.edu.chd.mobile

通过RS232发送和接收短信(一)

通常,发送和接收短信的终端都是通过串行接口连接电脑,这类设备用得比较多的是GSM Modem和手机.这类设备通常都支持PDU模式,但仍有少数设备只支持Text模式. 设备硬件连接好以后可以通过发送AT指令测试设备是否连接正确能否正常通讯.在这里我使用Windows自带的"超级终端"工具进行通讯.此工具可以在程序--附件--通讯里面找到,如果没有请确认是否安装了此组件.或者在运行里面输入"hypertrm"也可以快速启动"超级终端". 以下所有范例

android基础---->发送和接收短信

收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这项功能,而Android 作为出色的智能手机操作系统,自然也少不了在这方面的支持.今天我们开始自己创建一个简单的发送和接收短信的应用. 目录导航 接收短信 发送短信 友情链接 接收短信 项目的结构如下:一个简单的接收和发送短信的功能 一.定义一个接收短信的广播:当手机接收到一条短信的时候,系统会发出一条值为android.provider.Telephony.SMS_RECEIVED 的广播,这条广播里携带着与短信相关的

通过RS232发送和接收短信(三)

接收短信 接收刚收到的短信有两种方法:轮询终端:使用事件 轮询终端可以定期的使用AT+CMGL=0指令读取未读取得指令.方法简单,但许多时候都在做无用功,效率低下,一般不建议采用.下面主要讲解事件法: 指令: AT+CNMI=<mode>,<mt>,<bm>,<ds>,<brf> 参数: mode: 0--缓存在终端 1--直接发送到TE mt: 0--接收到新的SMS不返回事件 1--如果接收到的SMS存储在ME,则返回 +CMTI:<m

【Android】Android 发送短信和打电话的方法

发送短信的方法 有两种方法可以实现发送短信,其一是使用intent-startActivity,URI数据格式为"smsto:num",调用的action为Intent.ACTION_SENDTO: Uri uri = Uri.parse("smsto:5554"); Intent it = new Intent(Intent.ACTION_SENDTO, uri); it.putExtra("sms_body", "你好.."

SSH Secure Shell Client中文乱码的解决方法

这是SSH Secure Shell Client多年未解决的短板,要求客户端和服务器端都要'UTF-8'编码,Windows中文版的编码是非UTF-8.zh_CN.UTF-8是UTF编码的中文语言环境.Windows使用的是GB2312编码,大多数linux系统支持的是UTF-8编码,而远程登陆时使用的是本地编码,所以会出现乱码的问题:现有几种解决方案: 方案一:修改linux服务器的环境变量 使用linux,在用户根目录下有一个.bash_profile配置文件,该配置只对当前用户有效.若对

zabbix2.2.3中乱码的解决方法

当将zabbix2.2.3中的语言改为中文后图形后显示如下 解决方法: 1.查看zabbix的字体文件 [[email protected] ~]# cd /usr/share/zabbix/fonts/[[email protected] fonts]# lsgraphfont.ttf 2.将windows系统中你想用的字体文件复制到linux系统中,然后再将字体文件复制到zabbix字体所在的目录中 [[email protected] ~]# cp STXIHEI.TTF /usr/sha

Sublime Text 3打开txt中文乱码的解决方法

Sublime Text是一个非常强大的编辑器,可是对中文的支持并不好,在Sublime Text 2 时,可以通过命令行的方式安装编码包来解决,但Sublime Text 3不能通过这样的方式解决 在安装完Sublime Text 3后要下载一个ConvertToUTF8包放到C:\Users\用户名\AppData\Roaming\Sublime Text 3\Packages(安装目录可能不是这个,但可以在sublime中preference - browse packages打开此目录)