php漢字轉碼,php拼音轉漢字

本文目錄一覽:

php 能實現漢字轉url編碼的方法嗎?

rawurlencode()函數即可!

示例:

function  raw( $String, $en = false) {

   return !$en ? rawurldecode( $Strint ) : rawurlencode( $String );

}  

echo raw(‘%E5%AE%A2%E6%88%B7’);  //輸出: 客戶

echo raw(‘客戶’, true ); //輸出:%E5%AE%A2%E6%88%B7

php json_encode使用中文不轉碼

PHP轉JSON,中文會被轉碼成unicode,使用常量 JSON_UNESCAPED_UNICODE 可以使中文原樣輸入。

不使用 JSON_UNESCAPED_UNICODE

使用 JSON_UNESCAPED_UNICODE

Json在 5.4 還加入了: JSON_BIGINT_AS_STRING , JSON_PRETTY_PRINT , JSON_UNESCAPED_SLASHES 等選項, 如果有興趣, 大家可以參看: json_encode

其中有2個比較常用到的參數

JSON_UNESCAPED_UNICODE (中文不轉為unicode ,對應的數字 256)

JSON_UNESCAPED_SLASHES (不轉義反斜杠,對應的數字 64)

通常json_encode只能傳入一個常量,如果同時使用2個常量怎麼辦?

JSON_UNESCAPED_UNICODE + JSON_UNESCAPED_SLASHES = 320

使用方法:json_encode($arr,320);即可完成同時使用2個常量。

PHP5.4才支持 JSON_UNESCAPED_UNICODE 這個參數,此參數是讓中文字元在json_encode的時候不用轉義,減少數據傳輸量。

PHP 輸出簡單的中文 亂碼問題

解決php中中文亂碼問題方法

php文件本身的編碼與網頁的編碼應匹配

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。保存為utf-8可能會有點麻煩,一般utf-8文件開頭會有BOM,如果使用session就會出問題,可用editplus來保存,在editplus中,工具-參數選擇-文件-UTF-8簽名,選擇總是刪除,再保存就可以去掉BOM信息了。

php本身不是Unicode的,所有substr之類的函數得改成mb_substr(需要裝mbstring擴展);或者用iconv轉碼。

如果你的HTML文件文件出現了亂碼問題,那麼你可以在head標籤裡面加入UTF8編碼(國際化編碼):UTF-8是沒有國家的編碼,也就是獨立於任何一種語言,任何語言都可以使用的。

擴展資料:

解決PHP 輸出簡單的中文 亂碼問題的其他方法:

在php的echo前面加入header(“Content-Type:text/html;charset=gb2312”)

把meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ /中的UTF-8改成gb2312

 參考資料:

百度百科-PHP

php搜索 繁體怎麼轉成簡體

PHP實現—漢字簡體繁體轉換

這是以class包裝好的簡繁體轉換的class,

另外需要兩個table檔:

1. 

2. 

程式如下: CCharset.php3

? //=====================================================

// 程式員: Magic Jerry

//

// function Big5_Gb($str) = big5轉GB for string

// function Gb_Big5($str) = GB轉Big5 for string

//=====================================================

class CCharset {

var $gb_map=”gb.map”; //如果要放到別的路徑,要加上完整路徑

var $big5_map=”big5.map”; //例如 =”/home/table/gb.map

var $dep_char = 127;

//—————————————————————–

function cbig5_gb($str,$fd) {

$c=ord(substr($str,0,1));

$x=ord(substr($str,1,1));

$address=(($c-160)*510)+($x-1)*2;

fseek($fd, $address);

$hi=fgetc($fd);

$lo=fgetc($fd);

return “$hi$lo”;

}

function cgb_big5($str,$fd) {

$c=ord(substr($str,0,1));

$x=ord(substr($str,1,1));

$address=(($c-160)*510)+($x-1)*2;

fseek($fd, $address);

$hi=fgetc($fd);

$lo=fgetc($fd);

return “$hi$lo”;

}

//—————————————————————–

function Big5_Gb($str) {

$fd = fopen ($this-gb_map, “r”);

$str=str_replace(“charset=big5″,”charset=gb2312”, $str);

$outstr=””;

for($i=0;$istrlen($str);$i++) {

$ch=ord(substr($str,$i,1));

if($ch  $this-dep_char) {

$outstr.=$this-cbig5_gb(substr($str,$i,2),$fd);

$i++;

} else {

$outstr.=substr($str,$i,1);

}

}

fclose ($fd);

return $outstr;

}

//—————————————————————–

function Gb_Big5($str) {

$fd = fopen ($this-big5_map, “r”);

$str=str_replace(“charset=gb2312″,”charset=big5”, $str);

$outstr=””;

for($i=0;$istrlen($str);$i++) {

$ch=ord(substr($str,$i,1));

if($ch  $this-dep_char) {

$outstr.=$this-cgb_big5(substr($str,$i,2),$fd);

$i++;

} else {

$outstr.=substr($str,$i,1);

}

}

fclose ($fd);

return $outstr;

}

}

?

===================================================================

使用範例:

?

// Designer: Magic Jerry

//====直接轉換文字串 的使用方法========

include(“CCharset.php3”);

$obj=new CCharset;

$big5=”這是一個big5的文字串”;

$tgb=$obj-Big5_Gb($big5);

echo $tgb; //=== $tgb為轉換好的gb碼字串

$tbig5=$obj-Gb_Big5($tgb);

echo $tbig5; // 又被轉回來了: big5

//======================================

?

?

//如果直接轉換網頁 或是檔案

// 語法 這個程式.php3?http://要轉碼的網頁url或檔案

// example: 轉換奇摩首頁

// 這個程式.php3?

// 注意: 以下寫法如遇到該網頁有使用cookie,例如認證user,可能會被踢回,login錯誤..

// 為什麼? 想想看吧… @_@

include(“CCharset.php3”);

$file=$QUERY_STRING;

$fcontents = join( ”, file( “$file” ) );

$fcontents=str_replace(“head”,”headbase href=$file”, $fcontents);

$code=new CCharset;

$gb=$code-Big5_Gb($fcontents);

echo $gb;

?

範例:

?

if($func==”charset”) {

setcookie(“CHAR_GB”,$GB,time()+ 31536000);

$t=time();

$url=”http://”.$HTTP_HOST.$PHP_SELF.”?”.$QUERY_STRING;

$url=str_replace(“?func=charsetGB=1″,””, $url);

$url=str_replace(“?func=charsetGB=0″,””, $url);

$url=str_replace(“func=charsetGB=1″,””, $url);

$url=str_replace(“func=charsetGB=0″,””, $url);

//echo $url;

//echo “SET to Charset = $CHAR_GB”;

$t=time();

echo “

script language=javascript

document.location=’$url’

/script

“;

exit;

}

//phpinfo();

if($CHAR_GB==1  !$istran ) {

include(“CCharset.php3”);

if(strlen($QUERY_STRING)) $url=”http://”.$HTTP_HOST.$PHP_SELF.”?”.$QUERY_STRING.”istran=1″;

else $url=”http://”.$HTTP_HOST.$PHP_SELF.”?istran=1″;

while (list ($key, $val) = each ($HTTP_COOKIE_VARS)) {

//echo “$key = $valbr”;

$url.=””.$key.”=”.urlencode($val);

}

$fcontents = join( ”, file( “$url” ) );

$code=new CCharset;

$fcontents=$code-Big5_Gb($fcontents);

//echo “轉換過的 $CHAR_GB”;

echo $fcontents;

exit;

}

/

php中中文如何轉碼

應該是沒有URL編碼(一般來說,用默認字符集是沒有問題的)。

URL編碼/解碼,可用函數urlencode()與urldecode()。

還有一個小問題,你有個地方打錯了,在表單中把playerName打成了playerNmae,而iframe的URL中卻是playerName。

iframe代碼改為(你的拼寫錯誤已修正):

iframe id=”aaa” name=”aaa” width=”600″ height=”500″ src=”網址/playerDetail.php?serverName=?php echo urlencode($_GET[“serverName”]); ?playerName=?php echo urlencode($_GET[“playerName”]); ?”/iframe

表單代碼改為:

form action=”22.php” method=”get”

伺服器: input type=”text” name=”serverName” /br /

玩家名: input type=”text” name=”playerName” /br /

input type=”submit” /

/form

再試試?

如何正確運用PHP json_encode函數進行中文轉換

在 php 中使用 json_encode() 內置函數(php 5.2)可以使用得 php 中數據可以與其它語言很好的傳遞並且使用它。這個函數的功能是將數值轉換成json數據存儲格式,但是轉換後的中文會變成Unicode編碼。

[php] view plaincopyprint?

?php

$arr = array

(

‘Name’=’希亞’,

‘Age’=20

);

$jsonencode = json_encode($arr);

echo $jsonencode;

?

程序運行結果如下:

[php] view plaincopyprint?

{“Name”:null,”Age”:20}

json_encode 函數中中文被編碼成 null 了,Google 了一下,很簡單,為了與前端緊密結合,Json 只支持 utf-8 編碼,我認為是前端的 Javascript 也是 utf-8 的原因。

[php] view plaincopyprint?

?php

$array = array

(

‘title’=iconv(‘gb2312′,’utf-8′,’這裡是中文標題’),

‘body’=’abcd…’

);

echo json_encode($array);

?

這個程序的運行結果為:

[php] view plaincopyprint?

{“title”:”\u8fd9\u91cc\u662f\u4e2d\u6587\u6807\u9898″,”body”:”abcd…”}

數組中所有中文在json_encode之後都不見了或者出現\u2353等。解決方法是用urlencode()函數處理以下,在json_encode之前,把所有數組內所有內容都用urlencode()處理一下,然用json_encode()轉換成json字元串,最後再用urldecode()將編碼過的中文轉回來。

[php] view plaincopyprint?

?php

/**************************************************************

*

* 使用特定function對數組中所有元素做處理

* @param string $array 要處理的字元串

* @param string $function 要執行的函數

* @return boolean $apply_to_keys_also 是否也應用到key上

* @access public

*

*************************************************************/

function arrayRecursive($array, $function, $apply_to_keys_also = false)

{

static $recursive_counter = 0;

if (++$recursive_counter 1000) {

die(‘possible deep recursion attack’);

}

foreach ($array as $key = $value) {

if (is_array($value)) {

arrayRecursive($array[$key], $function, $apply_to_keys_also);

} else {

$array[$key] = $function($value);

}

if ($apply_to_keys_also is_string($key)) {

$new_key = $function($key);

if ($new_key != $key) {

$array[$new_key] = $array[$key];

unset($array[$key]);

}

}

}

$recursive_counter–;

}

/**************************************************************

*

* 將數組轉換為JSON字元串(兼容中文)

* @param array $array 要轉換的數組

* @return string 轉換得到的json字元串

* @access public

*

*************************************************************/

function JSON($array) {

arrayRecursive($array, ‘urlencode’, true);

$json = json_encode($array);

return urldecode($json);

}

$array = array

(

‘Name’=’希亞’,

‘Age’=20

);

echo JSON($array);

?

這次成功了,運行結果如下:

[php] view plaincopyprint?

{“Name”:”希亞”,”Age”:”20″}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/242532.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:50
下一篇 2024-12-12 12:50

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • 進擊的漢字拆字窗

    進擊的漢字拆字窗是一款非常有用的中文工具,它可以幫助人們更好的學習漢字,了解漢字的含義,以及更好的了解漢字在中文中的運用和意義。 一、功能介紹 進擊的漢字拆字窗主要有以下幾個功能:…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 如何在Python中輸出漢字和數字

    本文將從多個方面詳細介紹如何在Python中輸出漢字和數字,並提供代碼示例。 一、輸出漢字 要在Python中輸出漢字,需要先確保Python默認編碼是utf-8,這可以通過在代碼…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • Python中Turtle怎麼寫漢字

    Python中Turtle庫是一個在Python中用於繪製矢量圖形的庫。大多數場景下我們使用Turtle庫繪製的圖形是幾何圖形,但是在一些特殊的場景下,我們也可以使用Turtle庫…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • 怎樣解決 LaTeX 演算法\require 不顯示漢字的問題

    在使用 LaTeX 進行編程過程中,經常出現一個問題就是演算法與漢字的相互顯示問題,其中最常見的問題是演算法中漢字不顯示,這給編程帶來了很多麻煩。下面將從多個方面對這一問題進行詳細的解…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27

發表回復

登錄後才能評論