php发送邮件乱码
A. 我php设置的是UTF-8,数据库设置的是UTF8-general-ci,从页面发送数据给数据库后数据库显示的是乱码是为啥
试试把下面类似语句放到连接语句之后
mysql_query("SETNAMESUTF8");
或 PDO
$dbh->exe("SETNAMESUTF8");
用 SET NAMES UTF8 校正一下连接编码
因为PHP 连接数据库的过程中会经过三次编码转换,比如输出的的时候
MySql Server(UTF-8) -> PHP Connection( Latin1) -> UTF8页面的Result(UTF-8) 这时两种编码不兼容则产生乱码。
B. 镐庢牱瑙e喅PHP涓鏂囦贡镰侀梾棰
涔辩爜鎸囩殑鏄璁$畻链虹郴缁熶笉鑳芥樉绀烘g‘镄勫瓧绗︼纴钥屾樉绀哄叾浠栨棤镒忎箟镄勫瓧绗︽垨绌虹槠锛屽备竴鍫咥SCII Code銆傛墍鏄剧ず鍑烘潵镄勬枃瀛楃粺绉颁负涔辩爜銆备贡镰佹槸锲犱负镓浣跨敤镄勫瓧绗︾殑婧愮爜鍦ㄦ湰鍦拌$畻链轰笂浣跨敤浜嗛敊璇镄勬樉绀哄瓧搴掳纴鎴栧湪链鍦拌$畻链虹殑瀛楀簱涓镓句笉鍒扮浉搴斾簬婧愮爜镓鎸囦唬镄勫瓧绗︽墍镊淬
阃氢织镣硅诧细
涔辩爜灏辨槸浣犳墦寮鐜嬮〉鎴栭偖绠憋纴閲岄溃镄勫瓧涓嶆槸鍏ㄤ腑鏂囩殑锛岃屾槸涓浜涗贡涓冨叓绯熻帿钖嶅叾濡欑殑镞犳剰涔夌殑瀛楃︾粍钖埚湪涓璧枫备富瑕佹槸璁$畻链虹殑瀛楀簱鍑洪敊镓镊淬
1涓鑸鍑虹幇鍦ㄧ绣椤碉纴鐢ㄧ绣椤典笂闱㈢殑镆ョ湅钬斺旂紪镰佲斺旂亩浣扑腑鏂囧嵆鍙瑙e喅銆
2 鍑虹幇涔辩爜涓鑸鏄疻indows绯荤粺瀛楀簱镄勯梾棰桡纴鍙鑳芥槸绯荤粺阌栾鎴栦笉姝e父鍏虫満阃犳垚镄勶纴涔熷彲鑳芥槸镆愪簺杞浠堕渶瑕佷娇鐢ㄦ搷浣灭郴缁熶互澶栫殑瀛楀簱阃犳垚镄勚傝В鍐冲姙娉曞缑鐪嫔叿浣撶殑闂棰桡纴涓鑸𨱍呭喌涓嬬殑Windows涔辩爜鍙浠ラ氲繃浠ヤ笅涓夌嶆柟娉曡В鍐炽
绗涓绉嶆柟娉曟槸涓嬭浇 瑙e喅Windows XP SP2涔辩爜琛ヤ竵 V1.00 (鍗庡啗杞浠跺洯)
绗浜岀嶆槸瑙e喅Windows绯荤粺阌栾阃犳垚镄勪贡镰侀梾棰桡纴閲嶅惎钖庣敤F8阌婵娲荤郴缁熻彍鍗曪纴杩涘叆瀹夊叏妯″纺銆傜瓑绯荤粺妫镆ュ畬姣曪纴纭鐩樻病链夊搷搴斿悗鍐嶉吨鏂版e父阃鍑哄苟閲嶆柊钖锷ㄨ$畻链猴纴姝e父杩涘叆Windows锛屽瓧浣扑竴鑸灏辫兘镊锷ㄦ仮澶嶃傝繖鏄锲犱负Windows鍦ㄨ繘鍏ュ畨鍏ㄦā寮忔椂浼氶吨鏂扮储寮曞瓧搴揿强鏁寸悊凿滃崟銆
绗涓夌嶈В鍐虫柟娉旷敤浜庝慨姝h蒋浠堕犳垚镄勬敞鍐岃〃涓鍏充簬瀛椾綋閮ㄥ垎璁剧疆鍑洪敊镄勯梾棰樸傝繍琛屸淩egedit钬濆惎锷ㄦ敞鍐岃〃缂栬緫鍣ㄣ傚湪钬淗KEY_LOCAL_MACHINE\System\CurrentControlSet\Control\fontassoc钬濋敭涓嬫湁 钬淎ssociated CharSet钬濆拰钬淎ssociated DefaultFonts钬 涓や釜阌銆傚綋鍑虹幇姹夊瓧涔辩爜镞讹纴杩欎袱涓阌涓镄勫唴瀹瑰氨鍙鑳戒笉姝g‘鐢氲呖涓嶅畬鏁淬傚畠浠镄勬g‘鍐呭瑰簲璇ユ槸钬淎ssociated CharSet钬濆唴链夆滐纸榛樿わ级銆丄NSI锛00锛夈丢B2312锛86锛夈丱EM锛团F锛夈丼YMBOL锛02锛夆濆嚑椤逛覆鍊硷纴阌鍊煎垎鍒涓衡滐纸链璁剧疆阌鍊硷级銆乊es銆乊es銆乊es銆丯o钬濓纴钥屸淎ssociated DefaultFonts钬濆唴链夆滐纸榛樿わ级銆丄ssocSystemFont銆丗ontPackegeDecorative銆丗ontPackegeDontCare銆丗ontPackegeModern銆丗ontPackegeRoman銆丗ontPackegeScript銆丗ontPackegeSwiss钬濆嚑椤逛覆鍊硷纴阌鍊煎垎鍒涓衡滐纸链璁剧疆阌鍊硷级銆乻imsun.ttf銆佸画浣撱佸画浣撱佸画浣撱佸画浣撱佸画浣撱佸画浣撯濄傞吨鏂板惎锷ㄧ郴缁熷悗姹夊瓧灏卞簲璇ユ樉绀烘g‘浜嗐傚缓璁鎭ㄥ湪淇鏀瑰墠鍏埚囦唤娉ㄥ唽琛锛屼互阒蹭慨鏀归敊璇浣跨郴缁熷嚭鐜伴梾棰樸
C. 微信后台PHP代码中文乱码
header("content-type:text/html;charset=utf-8");
mysql_query('SETNAMESUTF8');
D. php 有关utf-8乱码的问题
服务器上用了别的编码,应该是windows的服务器吧?有可能是GBK或者GB2312编码。
两种方法解决此问题。
1、先在本地把所有文件都换成服务器的编码,然后再传上去;此法,你的php编码需要与服务器上的数据库编码一致,也既有可能是那两种编码。
2、修改服务器上的编码为utf-8。此方法需要你有足够的权限去修改服务器上apache或者IIS编码。如果修改编码成功,你的数据库也不用换编码。
如果保持你的网页编码不变,那就要修改mysql编码,即像stjdydayou
所言,执行数据库数据插入、更改、查询时,执行一条查询语句:
mysql_query("set
names
'utf-8'");
之所有用utf-8编码,是因为你的php编码目前为utf-8.
E. PHP 输出简单的中文 乱码问题
解决php中中文乱码问题方法
php文件本身的编码与网页的编码应匹配
a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),静态页面添加<metahttp-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。
b. 如果欲使用utf-8编码,那么php要输出头:header(“Content-Type: text/html; charset=utf-8"),静态页面添加<metahttp-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的编码格式为utf-8。保存为utf-8可能会有点麻烦,一般utf-8文件开头会有BOM,如果使用session就会出问题,可用editplus来保存,在editplus中,工具->参数选择->文件->UTF-8签名,选择总是删除,再保存就可以去掉BOM信息了。php本身不是Unicode的,所有substr之类的函数得改成mb_substr(需要装mbstring扩展);或者用iconv转码。
如果你的HTML文件文件出现了乱码问题,那么你可以在head标签里面加入UTF8编码(国际化编码):UTF-8是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的。
(5)php发送邮件乱码扩展阅读:
解决PHP 输出简单的中文 乱码问题的其他方法:
在php的echo前面加入header("Content-Type:text/html;charset=gb2312")
把<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />中的UTF-8改成gb2312
F. PHP GBK编码post提交到utf-8页面接收 怎么会是乱码的呢
编码不一样,肯定要乱码呀,接收的页面用iconv 函数 转换一下编码,就不会乱码了
G. 请教php高手,解决basename函数和mb_substr函数处理中文文件名称的解决方法,在上传文件时,总是出现乱码
两个解决办法:
第一,不使用中文文件名;
第二,对文件名进行编码转换,然后mb_substr就不会出现乱码了。