當前位置:首頁 » 編程語言 » php對字元編碼

php對字元編碼

發布時間: 2022-05-10 22:25:52

A. php使用gbk字元編碼時,無法映射某些字元

具體如下:
在pom.xml文件的如下內容中,添加encoding節點。
添加UTF-8.然後再去編譯,先前的報錯問題沒了。超文本預處理器是一種通用編程語言,最初是為了進行網頁開發而設計的。它最初是由拉斯馬斯·勒德爾夫在1994年創建的。PHP引用現在是由The PHP Group實現的。PHP最初是個人主頁的縮寫,但現在它是一個首字母遞歸型縮略詞,全稱為Hypertext Preprocessor,即超文本預處理器。

B. 如何用 PHP 搞定中文字元編碼問題

在PHP文件開頭寫上這一句:
header('Content-type:text/html; charset=utf-8'); 基本上都能解決中文字元編碼問題,如果是資料庫的原因,那在資料庫連接的時候也要設置編碼mysqli_set_charset('set names utf8');

C. PHP中哪個函數可以強制統一設置所有字元編碼為指定編碼

一般都是utf-8和gbk,gbk的一般沒有什麼問題。
utf-8最好在apache服務端就設定為utf-8。然後其他的地方,資料庫、文件都設置為UTF-8,就不會有錯了。
在php函數庫有一個函數:iconv(),iconv函數庫能夠完成各種字元集間的轉換,是php編程中不可缺少的基礎函數庫。
最近在做一個小偷程序,需要用到iconv函數把抓取來過的utf-8編碼的頁面轉成gb2312, 發現只有用iconv函數把抓取過來的數據一轉碼數據就會無緣無故的少一些。 讓我郁悶了好一會兒,去網上一查資料才知道這是iconv函數的一個bug。iconv在轉換字元"—"到gb2312時會出錯。

php編程技術:
PHP是一種易於學習和使用的伺服器端腳本語言。只需要很少的編程知識你就能使用PHP建立一個真正交互的WEB站點。 PHP是能讓你生成動態網頁的工具之一。PHP網頁文件被當作一般HTML網頁文件來處理並且在編輯時你可以用編輯HTML的常規方法編寫PHP。

D. PHP的字元編碼17符號代替問題,怎麼解決

近日,公司的論壇管理員發了一個帖子鏈接給我,說標題修改以後和實際的顯示不一樣。我打開之後發現,原始標題為:「手賤洗包漿,洗洗更健康」,但在title顯示成了 「手賤洗包漿,洗洗更降」。

於是乎,在本地測試環境下進行了編輯測試未發現異常,伺服器上對其它帖子也進行了編輯保存也為發現問題。

看來需要跟蹤一下源代碼了,發現上面的標題在執行了一下代碼之後發生了變化:

1 $thread['subject'] = str_replace("【",'',$thread['subject']);

2 $thread['subject'] = str_replace("】",'',$thread['subject']);

至此,可以肯定問題出在了這里,然而到底是什麼問題導致的呢,初步考慮是

1,伺服器環境有問題

2,編碼處理不一致

經過多個伺服器環境測試後,發現問題依舊,可以排除伺服器因素

之後測試編碼處理,先將要替換的字元和查詢的字元串轉成UTF-8編碼,之後進行替換測試發現問題不存在了。

於是修正上面的代碼為:

1 $rep1 = iconv('GBK', 'UTF-8', "【");

2 $rep2 = iconv('GBK', 'UTF-8', "】");

3 $thread['subject'] = iconv('GBK', 'UTF-8', $thread['subject']);

4 $thread['subject'] = str_replace(array($rep1, $rep2),array('',''), $thread['subject']);

5 $thread['subject'] = iconv('UTF-8', 'GBK', $thread['subject']);

解決問題。

終極問題分析:

由於計算機是基於二進制代碼運行的,因此php在執行替換的時候也是將非ASCII字元轉成了ASCII編碼之後進行查找替換,使用十六進制工具查看這些字元的二進制情況,結果如下:

【 的十六進制為 A1 BE

的十六進制為 A1 BF

健康的十六進制為 BD A1 BF B5

降的十六進制為 BD B5

通過以上的十六進制數據不難發現,健康的ASCII碼裡面正好存在】的ASCII碼,於是被替換,留下了降的ASCII碼。

由此可知,在字元串查找替換的時候,如果是非ASCII編碼字元串很容易出現這種問題,通過轉碼到UTF8或者Unicode編碼能否徹底的解決此問題還有待考證!

E. 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)
(注:以上問題調好後如果還有亂碼
就把你的頁面中文內容重新輸入一遍)

F. php怎樣判斷字元串是什麼編碼

php判斷字元編碼的二個方法:
一個是用php自帶的函數mb_detect_encoding,一個是個人寫函數來處理。
方法1,使用mb_detect_encoding函數。
?

1
2
3
4

<?php
$str=」<a href="http://www..com/" 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="http://www..com/" target="_blank" class="infotextkey">iconv</a>(『UTF-8′, $c, iconv($c, 『UTF-8′, $string))){//轉換編碼後是不是相等
return $c;
}
}
return null;
}
?>

G. php 字元編碼問題

做php最好是編碼統一, 頁面utf8, 資料庫gb2312, 這樣做,除了難為你自己還有別的好處嗎?
如果你非要這么做, 那你必須將$name11="張三" 轉成gb2312編碼, 然後讀取出來顯示到頁面的時候, 必須轉成utf8, 不累的慌?

H. 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
}

I. 淺析PHP中的字元串編碼轉換(自動識別原編碼)

本篇文章是對PHP中字元串編碼轉換的實現代碼進行了詳細的分析介紹,需要的朋友參考下

復制代碼
代碼如下:
/**
*
對數據進行編碼轉換
*
@param
array/string
$data
數組
*
@param
string
$output
轉換後的編碼
*/
function
array_iconv($data,$output
=
'utf-8')
{
$encode_arr
=
array('UTF-8','ASCII','GBK','GB2312','BIG5','JIS','eucjp-win','sjis-win','EUC-JP');
$encoded
=
mb_detect_encoding($data,
$encode_arr);//自動判斷編碼
if
(!is_array($data))
{
return
mb_convert_encoding($data,
$output,
$encoded);
}
else
{
foreach
($data
as
$key=>$val)
{
if(is_array($val))
{
$data[$key]
=
array_iconv($val,
$input,
$output);
}
else
{
$data[$key]
=
mb_convert_encoding($data,
$output,
$encoded);
}
}
return
$data;
}
}

J. php怎麼設置編碼

header("Content-type: text/html; charset=utf-8");
另外你的編輯器編碼也要對應哦

a. 如果欲使用gb2312編碼,那麼php要輸出頭:header(「Content-Type: text/html; charset=gb2312"),靜態頁面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的編碼格式為ANSI,可用記事本打開,另存為選擇編碼為ANSI,覆蓋源文件。
b. 如果欲使用utf-8編碼,那麼php要輸出頭 :header(「Content-Type: text/html; charset=utf-8"),靜態頁面添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的編碼格式為utf-8。

最近需要用到iconv函數把抓取來過的utf-8編碼的頁面轉成gb2312, 發現只有用iconv函數把抓取過來的數據一轉碼數據就會無緣無故的少一些。 讓我郁悶了好一會兒,去網上一查資料才知道這是iconv函數的一個bug。iconv在轉換字元"—"到gb2312時會出錯。解決方法很簡單,就是在 需要轉成的編碼後加 "//IGNORE" 也就是iconv函數第二個參數後,如下:
iconv("UTF-8","GB2312//IGNORE",$data)
ignore的意思是忽略轉換時的錯誤,如果沒有ignore參數,所有該字元後面的字元串都無法被保存。

熱點內容
雲伺服器怎麼設置攻擊 發布:2025-05-11 02:22:09 瀏覽:824
python嵌套for循環 發布:2025-05-11 01:51:44 瀏覽:227
安卓怎麼取消後台限制 發布:2025-05-11 01:45:45 瀏覽:257
一鍵搭建sk5伺服器 發布:2025-05-11 01:40:09 瀏覽:513
鴻業acs加密鎖模擬器 發布:2025-05-11 01:38:49 瀏覽:937
神廟逃亡2安卓版怎麼玩 發布:2025-05-11 01:38:05 瀏覽:161
凱傑都什麼配置 發布:2025-05-11 01:38:04 瀏覽:471
php微信開源系統源碼 發布:2025-05-11 01:37:54 瀏覽:813
pythonfor多個參數 發布:2025-05-11 01:12:32 瀏覽:74
plcsfc編程 發布:2025-05-11 01:11:56 瀏覽:166