php+mysql+oracle乱码解决

合集下载

oracle中文乱码解决方法

oracle中文乱码解决方法

oracle中文乱码解决方法1. Oracle数据库设置数据库参数NLS_LANG为使Oracle数据库中存储与显示中文时无乱码问题,可以更改Oracle数据库的数据库参数NLS_LANG,更改该参数为中文字符集,如:simplified Chinese_China.ZHS16GBK,此参数设置会对数据库中的所有字符数据有效。

2. Oracle数据库中多个字符集混用的解决方案一般系统及数据库常用的字符集可能存在多样性,例如全角字符、英文字母、空格等,而Oracle数据库支持了多个字符集,用户可以在数据库中多个字符集混合使用。

例如,用UTF8字符集对中文、英文、全角字符编码;用UTF16字符集对Unicode字符编码;用GBK/GB2312字符集对中文字符编码。

3. 注意SQL语句及字符集的指定为了防止运行SQL语句时出现乱码,应当在SQL语句中指定运行的字符集,如:ALTER SESSION SET NLS_LANGUAGE=AMERICAN_AMERICA.AL32UTF84. 客户端应用指定编码格式对于客户端应用,如sqlplus、PL/SQL开发工具,需要在连接之前指定客户端编码格式以确保传输与显示时无乱码问题,这种解决方案比较常用,在客户端应用中设置NLS_LANG参数,让客户端的中文字符使用Unicode,例如: NLS_LANG = SIMPLIFIED CHINESE_CHINA.UTF8 即可成功连接Oracle数据库解决乱码问题。

5. 数据导入导出中文处理从其他数据库导入Oracle数据库时,应从源数据库中查找出字段编码,在导入时将字段编码转换成Oracle数据库中的字符编码,可以增加数据库中文字符的正常显示。

从Oracle数据库导出数据至其他数据库,应将 Oracle 数据库中的字符编码转换成目标数据库的编码方式,以保证导出数据无乱码状况。

6. 中文乱码的原因分析中文乱码的常见原因之一是程序的编码格式未正确设置,将GBK/GB2312等字符集与UTF-8 等Unicode字符集混用,也会出现中文乱码的情况。

oracle数据库中文乱码问题解决方案

oracle数据库中文乱码问题解决方案

oracle数据库中文乱码问题解决方案oracle数据库中文乱码问题解决方案一、查看数据库服务器端的字符编码SQL>SELECT * FROM NLS_DATABASE_PARAMETERS;我对显示为AL32UTF8显示不正确,将其改为ZHS16GBK中文编码,步骤如下:先停止本数据库服务:SQL>shutdown immediate;数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

这些信息是更改正确字符集后的提示信息,一般应该是英文的)再启动数据库SQL>startup restrict; 此处要注意启动方式要加restrict参数ORACLE 例程已经启动。

Total System Global Area 603979776 bytesFixed Size 1220796 bytesVariable Size 180358980 bytesDatabase Buffers 415236096 bytesRedo Buffers 7163904 bytes数据库装载完毕。

数据库已经打开。

修改字符集SQL> alter session set sql_trace=true;Session altered.SQL> alter system enable restricted session;System altered.SQL> alter system set job_queue_processes=0;System altered.SQL> alter system set aq_tm_processes=0;System altered.SQL> alter database open;Database altered.SQL> alter database character set zhs16gbk;Database altered.重启数据库SQL> shutdown immediate;SQL> startup;ERROR at line 1:ORA-12721: operation cannot execute when other sessions are active若出现上面的错误,使用下面的办法进行修改,使用INTERNAL_USE可以跳过超集的检查:SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;SQL>SHUTDOWN IMMEDIATESQL>STARTUP二、查看和修改客户端字符集客户端NLS_LANG 的设置方法Windows:# 常用中文字符集set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK# 常用unicode字符集set NLS_LANG=american_america.AL32UTF8可以通过修改注册表键值永久设置HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS _LANG Unix:# 常用unicode字符集export NLS_LANG=american_america.AL32UTF8# 常用中文字符集export可以编辑bash_profile 文件进行永久设置vi .bash_profileexport NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"or export NLS_LANG="Simplified Chinese_china".ZHS16GBK # 使bash_profile 设置生效source .bash_profile备注:在终端不能正确显示中文可修改终端—>设定字符编码。

PHPMYSQL乱码问题,使用SETNAMESutf8校正

PHPMYSQL乱码问题,使用SETNAMESutf8校正

PHPMYSQL乱码问题,使⽤SETNAMESutf8校正
先记下,免得以后想不起来⼜到处去找!
PHP操作数据库的时候,数据库中数据使⽤UTF8编码,在读出来的时候,显⽰的全是问号乱码,找了⼀些资料原来是在读取之前进⾏⼀次编码设置:
复制代码代码如下:
create table tablename
(
id int not null auto_increment,
title varchar(20) not null,
contnet varchar(300) defalut null,
primary key ('id')
)begin=MyISAM DEFAULT CHARSET =UTF8;
在插⼊数据之前执⾏:
复制代码代码如下:
mysql_query("SET NAMES utf8");
然后
mysql_query("insert into tablename .....")
读出数据之前执⾏:
复制代码代码如下:
mysql_query("SET NAMES utf8");
然后 mysql_query("select * from tablename")
注意:此处读出的编码是把原来编码的内容重新经过编码后输出的,⽐如输出内容所在页⾯是GBK编码,那么在读出的时候在页⾯显⽰也为乱码,所以在查询之前执⾏ mysql_query("SET NAMES gbk"),在页⾯就可以正常显⽰GBK编码的⽂字内容。

mysql字符集与PHP乱码解决终级方案

mysql字符集与PHP乱码解决终级方案

gb2312是简体中文的码
gbk支持简体中文及繁体中文
big5支持繁体中文
utf-8支持几乎所有字符
PHP MYSQL中文乱码问题
从MySQL 4.1开始引入多语言的支持,但是用PHP插入的中文会出现乱码.无论用什么编码也不行.
解决方法:
1.在建表的时候设置编码类型为gb2312_chinese_ci.
GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBD大。
GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换:
2.在PHP页面的数据库连接语句加一行mysql_query("SET NAMES 'gb2312'",$link); 例如
$db_host="localhost";
$db_user="root";
$db_password="password";
$db_name="test";
$link=mysql_connect($db_host,$db_user,$db_password);
GBK、GB2312--Unicode--UTF8
UTF8--Unicode--GBK、GB2312
对于一个网站、论坛来说,如果英文字符较多,则建议使用UTF-8节省空间。不过现在很多论坛的插件一般只支持GBK。
GB2312是GBK的子集,GBK是GB18030的子集

MySQL中文乱码问题的解决方法

MySQL中文乱码问题的解决方法

MySQL中文乱码问题的解决方法在使用MySQL数据库过程中,经常会遇到中文乱码的问题。

这是由于MySQL默认使用的字符集是Latin1,而大部分中文系统使用的是UTF-8字符集所致。

本文将介绍在MySQL中解决中文乱码问题的几种方法。

一、修改MySQL配置文件MySQL配置文件(f)是MySQL服务器的设置文件,通过修改该文件可以改变MySQL的默认字符集。

在Linux系统中,该文件通常位于/etc/mysql/f或者/etc/f。

在Windows系统中,该文件通常位于MySQL安装目录下的my.ini文件。

步骤如下:1. 找到f或my.ini文件并打开。

2. 在[mysqld]部分添加或修改以下内容:```[mysqld]character-set-server=utf8collation-server=utf8_general_ci```3. 保存文件并重启MySQL服务。

二、修改数据库、数据表、字段字符集如果修改MySQL配置文件没有解决中文乱码问题,可以尝试直接修改数据库、数据表、字段字符集。

1. 修改数据库字符集可以使用ALTER DATABASE语句修改数据库的字符集。

例如:```ALTER DATABASE database_name CHARACTER SET utf8 COLLATEutf8_general_ci;```2. 修改数据表字符集可以使用ALTER TABLE语句修改数据表的字符集。

例如:```ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;```3. 修改字段字符集可以使用ALTER TABLE语句修改字段的字符集。

例如:```ALTER TABLE table_name MODIFY column_name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci;```其中,table_name为表名,column_name为字段名。

关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)

关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)

关于Mysql中⽂乱码问题该如何解决(乱码问题完美解决⽅案)最近两天做项⽬总是被乱码问题困扰着,这不刚把mysql中⽂乱码问题解决了,下⾯⼩编把我的解决⽅案分享给⼤家,供⼤家参考,也⽅便以后⾃⼰查阅。

⾸先:⽤show variables like “%colla%”;show varables like “%char%”;这两条命令查看数据库与服务端的字符集设置如果查看出来都是gbk2312,或 gbk,那么就只能⽀持简体中⽂,繁体和⼀些特殊符号是不能插⼊的,我们只有修改字符集为UTF-8,修改⽅法如下:⽤记事本或UitraEdit打开mysql数据库安装⽬录下的my.ini⽂件打开,然后Ctrl+F搜索default-character-set,将后⾯的字符集修改为UTF8,注意要修改两个地⽅,⼀个事客户端的,⼀个是服务端的。

然后保存,重启mysql服务、、进去继续⽤show variables like “%colla%”;show varables like “%char%”;着两条语句查询⼀下字符集。

如图:到此就配置完成了。

注意:如果以前建有数据库没有删除的请⽤ show database 数据库名;和 show create table 表名;查看⼀下数据库和表的字符集是否为UTF8 ,因为修改my.ini⽂件,它不能修改原来数据库的的字符集。

在命令⾏下⾯可以⽤alter database 数据库名 character set “字符集”;命令来修改数据库字符集还有⼀点要注意的是,修改为UTF8以后,在命令⾏下⾯中⽂是乱码的,只输出到页⾯或控制台是正常的,这个问题我也上⽹查了⼀下,貌似命令⾏下⾯不⽀持UTF8,我也不太清楚。

当修改以后,在命令⾏下⾯如果要插⼊中⽂,可以在插⼊语句之前执⾏,set names gbk2312;就可以插⼊中⽂了,但是不能插⼊繁体和⼀些特殊符号。

以上就是这⼏天解决乱码的成果。

MySQL中的字符集转换与乱码问题解决方法

MySQL中的字符集转换与乱码问题解决方法

MySQL中的字符集转换与乱码问题解决方法在使用MySQL数据库时,我们经常会遇到字符集转换和乱码的问题。

正确地处理字符集转换和乱码是确保数据库存储和检索数据的关键。

本文将探讨MySQL 中的字符集转换与乱码问题,并提供解决方法。

一、字符集与编码首先,我们需要了解字符集和编码的概念。

字符集是一组字符的集合,而编码则是将字符集中的字符映射到二进制数据的规则。

常见的字符集有ASCII、Unicode和UTF-8等,而编码方式有UTF-8、GBK、Latin1等。

在MySQL中,字符集用来定义存储和处理文本数据的规则,而编码则是实际使用的二进制编码。

如果字符集和编码不一致,就会导致数据存储和检索时出现乱码问题。

二、MySQL中的字符集设置在MySQL中,字符集设置是通过修改服务器、数据库、表和列的字符集属性来实现的。

1. 服务器字符集设置在MySQL配置文件(f)中,可以设置服务器的默认字符集和排序规则。

通过编辑f文件,找到[mysqld]节点,在其下方添加如下内容:```shell[mysqld]...character_set_server=utf8mb4collation_server=utf8mb4_unicode_ci...```这样,服务器的默认字符集就被设置为utf8mb4,并且排序规则为utf8mb4_unicode_ci。

2. 数据库字符集设置在MySQL中,每个数据库都有一个特定的字符集和排序规则。

可以通过以下命令创建一个指定字符集的数据库:```sqlCREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATEutf8mb4_unicode_ci;```这样,创建的数据库就拥有utf8mb4字符集和utf8mb4_unicode_ci排序规则。

3. 表和列的字符集设置在创建表时,可以指定表和列的字符集和排序规则。

例如,创建一个使用utf8mb4字符集的表:```sqlCREATE TABLE table_name (col1 VARCHAR(255) CHARACTER SET utf8mb4 COLLATEutf8mb4_unicode_ci,col2 TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci);```这样,表和列的字符集就被设置为utf8mb4,并且排序规则为utf8mb4_unicode_ci。

oracle中文乱码解决方法

oracle中文乱码解决方法

oracle中文乱码解决方法
oracle中文乱码解决方法
Oracle中文乱码解决方法
Oracle是一款非常流行的数据库管理系统,但是它有一个比较烦人的问题,就是中文乱码的问题,很多用户反映在使用Oracle时会遇到中文乱码,这让不少用户感到很恼火。

那么,Oracle中文乱码应该如何解决呢?
我们必须确定乱码的原因。

通常,中文乱码的原因有三种:第一种是Oracle数据库编码和程序编码不一致;第二种是Oracle数据库字符集不支持中文;第三种是Oracle数据库表字段设置不正确。

当我们确定了乱码的原因之后,就可以根据具体问题进行解决。

如果是数据库编码和程序编码不一致的问题,我们可以在Oracle数据库中指定编码,这样就可以解决乱码问题;如果是Oracle数据库字符集不支持中文,我们可以在Oracle数据库中添加支持中文的字符集,以解决乱码问题;如果是Oracle数据库表字段设置不正确,我们可以修改表字段的编码,以解决乱码问题。

解决Oracle中文乱码的方法有很多,但是要恰当地识别出乱码的原因,并采取相应的措施,才能有效地解决乱码问题。

因此,当我们遇到Oracle中文乱码问题时,要认真检查,找出乱码的原因,并采取相应措施,解决Oracle中文乱码问题。

解决PHP+mysql处理中文乱码的独家方案

解决PHP+mysql处理中文乱码的独家方案

心之所向,所向披靡解决PHP+mysql处理中文乱码的独家方案本方案适用于所有页面文件均为php(已成功测试过),如果有混合文件读者可以亲自测试。

问题现象如下图,1所示为修复过的头部引用文件header.php,中文能正常显示,2所示为未修复过的standard.php页面文件。

一、为了解决问题,首先应该设置数据库的字符编码,如下图所示,本例将所有编码设置为UTF-8。

同样将数据库中的所有表的字符编码设置成UTF-8。

这样,数据库中可以正常显示中文字符了,如下图所示。

如果要导入外来数据,也要设置好字符编码,对于非mysql数据库的导入(如从ACCESS数据库中导入),需要设置分隔字段的字符,然后执行便可,如下图所示。

----------------------------------------二、数据库的字符编码完成后,便要将页面文件的编码设置好。

这里的要点有如下三点(红色为说明文字):为了实现上述三点要求,本例采用的方案如下:1.创建一个数据库连接文件conn.php ,其中在开头设置header 编码,并在创建数据连接后设置SQL 请求的编码,如下图所示:2.设置页面文件的文件类型。

可以在页面文件中的<head>标签中设置字符编码。

2.1如果之前的字符编码为gb2312,则该文件类型为ANSI (本例使用DW 和notepad++软件,读者也可用UE 编辑软件,只不过类型显示名称不一样而已),如下图所示:2.2将<head>标签的编码设置成utf-8并保存文件后,再次打开,会发现文件类型变成了ANSI as UTF-8,如下图所示:3.在页面的首行引入数据链接文件conn.php,可以保证conn.php中的header 设置字符编码成功有效,否则中文仍会出现乱码,如下图所示:最后,就完成了字符编码的设置,看看成功后的页面吧(如下图),中文全部正常显示出来了,是不是很神奇,赶快动动手来实现吧!Ps:另外提一句,如果你想让页面的字符编码设为其他类型(如GBK),则可评论,观念,各有不同做好自己那份就好以按上述方案将所有的编码类型设置为GBK即可。

Oracle数据库中文乱码问题解决

Oracle数据库中文乱码问题解决
5.重 新 启 动 PLSQL,插 入 数 据 正 常
3.设 置 环 境 变 量 计 算 机 ->属 性 ->高 级 系 统 设 置 ->环 境 变 量 ->新 建 设 置 变 量 名 :NLS_LANG,变 量 值 :第 1步 查 到 的 值 , 我 的 是 AMERICAN_AMERICA.ZHS16GBK
4.去 虚 拟 机 修 改 注 册 表 值 , 修 改 NLS_LANG为 服 务 器 端 查 询 到 的 值 。 修 改 以 后 重 新 启 动 一 下 下 图 所 示 的 两 个后台服务
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
Or器 端 编 码 select userenv('language') from dual; 我 实 际 查 到 的 结 果 为 :AMERICAN_AMERICA.ZHS16GBK 2.执 行 语 句 select * from V$NLS_PARAMETERS , 查 看 第 一 行 中 PARAMETER项 中 为 NLS_LANGUAGE 对 应 的 VALUE项 中 是 否 和 第 一 步 得 到 的 值 一 样 。 如果不是,需要设置环境变量。

如何解决MySQL中文乱码和字符集问题

如何解决MySQL中文乱码和字符集问题

如何解决MySQL中文乱码和字符集问题MySQL是一种开源的关系型数据库管理系统,被广泛用于各种业务应用和网站开发中。

然而,在处理中文字符时,MySQL往往会遇到乱码和字符集问题,给使用者带来很多麻烦。

本文将探讨如何解决MySQL中文乱码和字符集问题,并提出一些优化建议。

一、了解字符集和字符编码在解决MySQL中文乱码和字符集问题之前,我们首先需要了解一些基本概念,即字符集(Character Set)和字符编码(Character Encoding)。

字符集是一种规范,用于定义字符的集合和字符的规则。

常见的字符集有ASCII、UTF-8、GBK等。

字符编码是字符集在计算机中存储和传输的方式。

常见的字符编码有ASCII、UTF-8、UTF-16、GB2312等。

二、设置数据库、表和字段的字符集和字符编码解决MySQL中文乱码和字符集问题的第一步是正确设置数据库、表和字段的字符集和字符编码。

1. 设置数据库字符集和字符编码在创建数据库时,可以指定数据库的字符集和字符编码。

例如:CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;这样,数据库的字符集就被设置为utf8mb4,字符编码则是utf8mb4_unicode_ci。

确保数据库的字符集和字符编码与应用程序及其它组件保持一致。

2. 设置表的字符集和字符编码在创建表时,也可以指定表的字符集和字符编码。

例如:CREATE TABLE mytable (id INT,name VARCHAR(30)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;这样,表的字符集和字符编码与数据库保持一致。

3. 设置字段的字符集和字符编码在创建字段时,可以指定字段的字符集和字符编码。

例如:CREATE TABLE mytable (id INT,name VARCHAR(30) CHARACTER SET utf8mb4 COLLATEutf8mb4_unicode_ci);这样,字段的字符集和字符编码与表保持一致。

乱码问题解决 完全解决MYSQL数据库的乱码问题

乱码问题解决 完全解决MYSQL数据库的乱码问题

一、Web应用中的中文问题:Jsp页面编码:<%@page pageEncoding=“utf-8”%>告诉jsp引擎,在将jsp转成servlet源文件时,该jsp文件的编码是什么。

<%@page contentType=“text/html;charset=utf-8”%>相当于Servlet中的response.setContextType()。

即设置相应头。

浏览器会依据该编码来显示页面,保持jsp文件时,其真正的编码应该与设置的一致。

Html:<meta http-equiv=“Content-Type” content=“text/html;charset=utf-8”>保存html文件时,其真正的编码应该与设置的一致。

Servlet:获取请求参数时:request.setCharacterEncoding("utf-8");如果servlet要直接输出一些信息:response.setContentType("text/html;charset=utf-8");数据库:mysql设置数据库编码:Create database servletdb(数据库名)default character set utf8;如果数据库已经建好了,可以使用:Alter database servletdb(数据库名)default character set utf8;(修改编码)set names gbk;二、工具中修改编码方式:1、改变Eclipse 或者MyEclipse 新建文件的默认编码eclipse 的:window-->preferences-->General-->ContentType 改成utf-8 。

myEclipse 的:window-->preferences-->myEclipse-files and editors-jsp encoding 设成ISO10646/UTF-8.2、eclipse 和java文件编码设定Window-->preferences-->General-->Workspace Text file encoding 改为UTF-8 。

php乱码解决方案

php乱码解决方案

php乱码解决方案《PHP乱码解决方案》在使用PHP进行开发时,经常会遇到乱码的问题。

乱码可能会导致网页显示不正常,影响用户体验。

那么,如何解决PHP乱码问题呢?下面介绍一些常见的解决方案。

1. 确保编码一致在PHP文件开头添加如下代码,指定文件编码格式:```phpheader("Content-type: text/html; charset=utf-8");```这样可以确保输出的内容使用UTF-8编码,可以有效避免乱码问题。

2. 数据库连接设置在连接数据库时,应该设置连接字符集为UTF-8:```phpmysqli_set_charset($con, "utf8");```这样可以确保从数据库获取的数据也是UTF-8编码的,避免乱码问题。

3. 处理中文字符在PHP代码中处理中文字符时,应该使用相关的函数进行处理,比如使用`mb_convert_encoding`函数进行编码转换。

4. 使用HTML meta标签在HTML页面的head标签中添加如下meta标签:```html<meta charset="UTF-8">```这样可以告诉浏览器页面的编码格式,确保页面正常显示。

5. 检查服务器设置在一些情况下,乱码可能是由于服务器的配置问题导致的。

可以检查服务器的默认编码设置,确保与项目所需的编码一致。

总结:PHP乱码问题可能会因多种原因导致,但通过以上一些常见的解决方案,可以有效避免乱码问题的发生。

在开发过程中,应该注意统一编码格式,并且使用相关的函数和方法进行编码转换,确保输出内容的准确性和美观性。

彻底解决mysql中文乱码

彻底解决mysql中文乱码

彻底解决mysql中⽂乱码mysql是我们项⽬中⾮经常常使⽤的数据型数据库。

可是由于我们须要在数据库保存中⽂字符,所以经常遇到数据库乱码情况。

以下就来介绍⼀下怎样彻底解决数据库中⽂乱码情况。

1、中⽂乱码1.1、中⽂乱码create table user(name varchar(11)); # 创建user表insert into table user("carl"); # 加⼊数据select * from user;insert into user value("哈哈");⽆法插⼊中⽂字符:1.2、查看表字符编码mysql> show create table user \G;*************************** 1. row ***************************Table: userCreate Table: CREATE TABLE `user` (`name` varchar(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin11 row in set (0.00 sec)我们能够看到表的默认字符集是latin1.所以我们在创建表的时候就须要指定表的字符集:create table user(name varchar(11)) default charset=utf8;这样在Linux⾥⾯能够訪问并且能够插⼊与訪问这个表了。

1.3、数据库与操作系统编码尽管在服务器端能够显⽰中⽂正常,可是在客户端可能会显⽰乱码。

由于我们的服务器是UTF8。

并且数据库的编码也存在问题。

这⾥我们能够看character_sert_database与character_set_server的字符集都是latin1.那么在mysql数据库中,server,database,table的字符集都默认是latin1.以下我们就来看看怎样解决mysql乱码情况。

mysql+php中文乱码问题及mysql时间函数

mysql+php中文乱码问题及mysql时间函数

mysql+php中文显示乱码的解决mysql+php中文显示乱码的解决建议数据库用utf8编码问题汇总:1.mysql数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码.2.MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.3.MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.4.用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP 页面乱码.5.如用户输入资料的页面是big5码,显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码.6.PHP页面字符集不正确.7.PHP连接MYSQL数据库语句指定的编码不正确.使用mysql+php产生乱码的原因都了解得很清楚了,那么解决就不困难了.针对不同问题的解决方法:1.mysql数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码.修改数据库编码,如果是数据库编码不正确,可以在phpmyadmin执行如下命令:ALTER DATABASE'test'DEFAULT CHARACTER SET utf8COLLATE utf8_bin 以上命令就是将test数据库的编码设为utf8.2.MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.修改表的编码:ALTER TABLE'category'DEFAULT CHARACTER SET utf8COLLATE utf8_bin 以上命令就是将一个表category的编码改为utf8.3.MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.修改字段的编码:ALTER TABLE'test'CHANGE'dd''dd'VARCHAR(45)CHARACTER SET utf8 COLLATE utf8_bin NOT NULL以上命令就是将test表中dd的字段编码改为utf8.4.用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP 页面乱码.如果是这种情况容易解决,只需检查下页面,修改源文件的charset即可.5.如用户输入资料的页面是big5码,显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码.这种情况也是修改页面charset即可.6.PHP页面字符集不正确.为了避免PHP页面乱码的发生,PHP页面开始第一句header("content-type:text/html;charset=utf-8");//强行指定页面的编码,以避免乱码7.PHP连接MYSQL数据库语句指定的编码不正确.在连接数据库的语句中.mysql_connect('localhost','user','password');mysql_select_db('my_db');mysql_query("set names utf8;");//select数据库之后加多这一句mysql日期函数的总结DATE_FORMAT(date,format)根據format字符串格式化date值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二,在网页上显示
首先,可以用mb_detect_encoding(检测的字符串,array('UTF-8','GB2312','GBK','BIG5','ASCII'……等等字符集)),这个函数返回当前字符串使用的字符集名称;
然后,用iconv('原字符集','目标字符集','要转换的字符串'),这样将字符串转换后显示,就不会有乱码了
解决:
根据这三个环节,制定解决办法:
第一,提取出来的时候不能有乱码。
使用OCI_CONNECT('用户名','密码','数据库','字符集'),字符集参数必须和oracle数据库的字符集一致
查看oracle数据库字符集命令:
SELECT * FROM v$nls_parameters ----里面有个NLS_CHARACTERSET项目,这就是oracle的字符集
然后,在插入的时候,将字符串字段用第二步的iconv进行转码
通过上面这些步骤,就解决了乱码的问题。感觉是,编程的话,必须动手,要敢于一个问题一个问题地突破,不要一个问题没有弄好,又去搞下一个问题。有了一个突破以后,才能扩大到其他地方。
对上面的内容,对学习软件,如果,大家有更好的建议,请多多指教。qq:2544882
另外,要注意的是
第三,写入mysql数据库
首先,使用命令
$sql='set name utf8';
mysql_query($sql,$conn)
其中$conn是建立的对mysql的连接
这样设置好数据库的连接编码
解决数据库编码问题
问题描述:
用PHP从oracle数据库中提取数据,导入mysql数据库,oracle是US7ASCII,mysql是UTF-8,如何才能避免乱码?
知识点:
原因:首先乱码出现可能在三个环节出现:一是从oracle数据库提取出来的时候;二是在网页上显示的时候;三是写进mysql数据库的时候。
相关文档
最新文档