×

php显示字符串编码格式

php显示字符串编码格式(php设置字符串编码为utf8)

admin admin 发表于2023-03-11 12:26:12 浏览34 评论0

抢沙发发表评论

本文目录一览:

php对字符串转换编码后,在不同浏览器里面显示的为何不一样,有的是乱码?求良方~

你好

乱码问题分为好几种情况

大部分情况下是编码不统一造成的

以utf-8为例

1、网页格式(在浏览器页面单击

右键——编码——

utf-8

)

2、数据库字符集(在你用到的数据库上点右键——数据库属性——选择utf8(UTF-8

Unicode)

3、数据库表问题(以mysql为例

选定你取数据的表

右键——设计表——选定你的字段看下方的字符集一栏是不是UTF-8)

4、取数据问题(在你的数据库连接文件中写入:mysql_query("set

names

utf8");)

5、网页制作时错误(以dreamweaver为例,打开你的页面,单击最上面的修改——页面属性

——标题/编码——在编码那一列选择UTF-8)

(注:以上问题调好后如果还有乱码

就把你的页面中文内容重新输入一遍)

php怎样判断字符串是什么编码

php判断字符编码的二个方法:

一个是用php自带的函数mb_detect_encoding,一个是个人写函数来处理。

方法1,使用mb_detect_encoding函数。

?

1

2

3

4

?php

$str=”a href="" target="_blank" class="infotextkey"脚本/a”;

echo mb_detect_encoding($str);

?

方法2,自定义函数。

?

1

2

3

4

5

6

7

8

9

10

11

?php

function chkbm($string){

$bm = array(‘ASCII’, ‘GBK’, ‘UTF-8′);

foreach($bm as $c){

if( $string === a href="" target="_blank" class="infotextkey"iconv/a(‘UTF-8′, $c, iconv($c, ‘UTF-8′, $string))){//转换编码后是不是相等-php显示字符串编码格式

return $c;

}

}

return null;

}

?

php 怎样判断字符串是哪种编码

php中有个函数可以用来检查当前字符串的编码类型

mb_detect_encoding($str,array('ASSCII',''GB2312','UTF-8));

PHP用MBString库的函数

$e=mb_detect_encoding($text, array('UTF-8', 'GBK'));

switch($e){

case 'UTF-8' : //如果是utf8编码

break;

case ‘GBK’: //如果是gbk编码

break

}

php如何输出中文json格式字符串

php如何输出中文json格式字符串

如何对json格式的字符串进行转换,php提供了两个函数:

json_encode 对变量进行 JSON 编码

json_decode 对 JSON 格式的字符串进行编码

下面看个实例:

$arr = ['a', 'b', 'c'];echo json_encode($arr);

输出为:

["a","b","c"]

但是,当我们在数组中放入中文的时候,就会出现问题:

$arr = [ '世界', '你好',

];echo json_encode($arr);

输出的结果为:

["\u4e16\u754c","\u4f60\u597d"]

这个结果显然不是我们想要的,但是为什么出现这个呢?

因为当我们的值中包含中文时,php对他进行json编码时底层会对中文进行unicode编码,导致结果不可读,那该怎么解决呢?

方法一

可以利用 urlencode 和 urldecode 方法绕过这个转码为 unicode 的过程,先将中文字段进行urlencode,然后json_encode,最后再用urldecode处理结果,便可以正常显示中文。具体代码如下:-php显示字符串编码格式

$arr = [ '世界', '你好',

];echo urldecode(json_encode(array_map('urlencode', $arr)));

输出结果为:

["世界","你好"]

方法二

自PHP5.4版本,官方就已经给Json新增了一个选项: JSON_UNESCAPED_UNICODE。加上这个选项后,就不会自动把中文编码了。具体代码如下:

$arr = [ '世界', '你好',

];echo json_encode($arr, JSON_UNESCAPED_UNICODE);

["世界","你好"]

看吧,这才是我们想要的结果 :)

PHP mb_convert_encoding 获取字符串编码类型实现代码

后来又在手册上找到了is_utf8函数,这样,再结合iconv函数,我的问题就解决了。下面帖出这个函数:

复制代码

代码如下:

function

is_utf8($string)

{

return

preg_match('%^(?:

[\x09\x0A\x0D\x20-\x7E]

#

ASCII

|

[\xC2-\xDF][\x80-\xBF]

#

non-overlong

2-byte

|

\xE0[\xA0-\xBF][\x80-\xBF]

#

excluding

overlongs

|

[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}

#

straight

3-byte

|

\xED[\x80-\x9F][\x80-\xBF]

#

excluding

surrogates

|

\xF0[\x90-\xBF][\x80-\xBF]{2}

#

planes

1-3

|

[\xF1-\xF3][\x80-\xBF]{3}

#

planes

4-15

|

\xF4[\x80-\x8F][\x80-\xBF]{2}

#

plane

16

)*$%xs',

$string);

}

//

function

is_utf8

如果想深入研究,建议看下PHP手册上的“Multibyte

String

Functions”这一部分的内容。

PHP中如何把一个字符串转换为utf-8编码的 ?如题 谢谢了

1、把 GBK 编码字串转换成 UTF-8 编码字串 view plaincopy to clipboardprint? ?php header("content-Type: text/html; charset=Utf-8"); echo mb_convert_encoding("你是我的好朋友","UTF-8","GBK"); ? 2、把 UTF-8 编码字串转换成 GB2312 编码字串 view plaincopy to clipboardprint? // 注意将此文件存盘成 utf-8 编码格式文件再测试 ?php header("content-Type:text/html;charset=gb2312"); echo mb_convert_encoding("你是我的好朋友","gb2312","utf-8"); ? // 注意将此文件存盘成 utf-8 编码格式文件再测试 ?php header("content-Type: text/html; charset=gb2312"); echo mb_convert_encoding("你是我的好朋友","gb312","utf-8"); ? 3、对整个页面进行转换 该方法适用所有编码环境。这样把前128个字符以外(显示字符)的字符集都用 NCR(Numeric character reference,如“汉字”将转换成“汉字”这种形式)来表示,这样的编码在任意编码环境下页面都能正常显示。 在php文件的头部加上下面三行代码: view plaincopy to clipboardprint? mb_internal_encoding(”gb2312″); // 这里的gb2312是你网站原来的编码 mb_http_output(”HTML-ENTITIES”); ob_start(’mb_output_handler’); mb_internal_encoding(”gb2312″); // 这里的gb2312是你网站原来的编码 mb_http_output(”HTML-ENTITIES”); ob_start(’mb_output_handler’); 使用mb_convert_encoding 函数需启用PHP 的mbstring (multi-byte string)扩展-php显示字符串编码格式