導航:首頁 > 編程語言 > php漢字轉16進制

php漢字轉16進制

發布時間:2022-03-02 16:49:51

A. php 中文與16進制轉換問題

以 \u 開頭,後跟4個十六進制數(即范圍在 0-9 A-F的字元),是unicode編碼格式的字元。

在PHP中,如果想要進行兩者之間的轉換,可以使用以下的函數:

<meta charset="UTF-8"/>
<?php
// 轉換編碼,將可以瀏覽的utf-8字元串轉換成Unicode編碼
function unicode_encode($uStr)
{
$uStr = iconv('UTF-8', 'UCS-2', $uStr);
$len = strlen($uStr);
$str = '';
//for ($i = 0; $i < $len – 1; $i = $i + 2){
for ($i = 0; $i < $len - 1; $i = $i + 2) {
$c = $uStr[$i];
$c2 = $uStr[$i + 1];
if (ord($c) > 0) { // 兩個位元組的文字
$str .= '\u' . base_convert(ord($c), 10, 16) . base_convert(ord($c2), 10, 16);
} else {
$str .= $c2;
}
}
return $str;
}
// 轉換編碼,將Unicode編碼轉換成可以瀏覽的utf-8字元串
function unicode_decode($uStr)
{
$pattern = '/([\w]+)|(\\\u([\w]{4}))/i';
preg_match_all($pattern, $uStr, $matches);
if (!empty($matches)) {
$uStr = '';
for ($j = 0; $j < count($matches[0]); $j++) {
$str = $matches[0][$j];
if (strpos($str, '\\u') === 0) {
$code = base_convert(substr($str, 2, 2), 16, 10);
$code2 = base_convert(substr($str, 4), 16, 10);
$c = chr($code) . chr($code2);
$c = iconv('UCS-2', 'UTF-8', $c);
$uStr .= $c;
} else {
$uStr .= $str;
}
}
}
return $uStr;
}
$uStr = '大家好';
echo '原始字元: ', $uStr , ' Undicode編碼:', unicode_encode($uStr);
?>

B. 主要是這樣的,我想用php讀取txt文件里每一行的漢字 並實現16進制轉碼

題義是要將gbk編碼先轉換成utf8編碼然後在轉成urlecode。
寫代碼如下
<?php
$a=file('old.txt'); //舊文本
$f=fopen('new.txt','wt'); //新生成文本
foreach($a as $k=>$l){
$l=urlencode(iconv('gbk','utf-8',trim($l))); //cp936即gbk的早期版本
echo $l.'<br/>';
fwrite($f,$l."\n");
}
fclose($f);
=============
原文件內容:
漢字漢字
數字數字
網路網路

輸出文件內容:
%E6%B1%89%E5%AD%97%E6%B1%89%E5%AD%97
%E6%95%B0%E5%AD%97%E6%95%B0%E5%AD%97
%E7%99%BE%E5%BA%A6%E7%99%BE%E5%BA%A6

C. PHP把單個字母轉為十六進制的函數是什麼

PHP convert string to hex and hex to string
<?php
function strToHex($string){
$hex = '';
for ($i=0; $i<strlen($string); $i++){
$ord = ord($string[$i]);
$hexCode = dechex($ord);
$hex .= substr('0'.$hexCode, -2);
}
return strToUpper($hex);
}
function hexToStr($hex){
$string='';
for ($i=0; $i < strlen($hex)-1; $i+=2){
$string .= chr(hexdec($hex[$i].$hex[$i+1]));
}
return $string;
}

// Tests
header('Content-Type: text/plain');
function test($expected, $actual, $success) {
if($expected !== $actual) {
echo "Expected: '$expected'\n";
echo "Actual: '$actual'\n";
echo "\n";
$success = false;
}
return $success;
}

$success = true;
$success = test('00', strToHex(hexToStr('00')), $success);
$success = test('FF', strToHex(hexToStr('FF')), $success);
$success = test('000102FF', strToHex(hexToStr('000102FF')), $success);
$success = test('↕↑↔§P↔§P ♫§T↕§↕', hexToStr(strToHex('↕↑↔§P↔§P ♫§T↕§↕')), $success);

echo $success ? "Success" : "\nFailed";

D. PHP里,16進制格式字元串,轉換成具體值的方法

還有 hexdec 這個函數number hexdec ( string $hex_string )

Example #1 hexdec() 例子

<?php
var_mp(hexdec("See"));
var_mp(hexdec("ee"));
// both print "int(238)"

var_mp(hexdec("that")); // print "int(10)"
var_mp(hexdec("a0")); // print "int(160)"
?>

E. PHP十六進制,十進制,八進制,二進制怎麼轉回原本的文字

你是在說進制間的轉換嗎?
base_convert() 函數貌似能幫助你

比如
$a = 120;// 十進制數
// 將此十進制數轉換為 2進制
echo base_convert($a , 10 , 2); // 結果是 1111000

// 在吧 1111000 轉回 120 十進制 也就二進制賺十進制
echo base_convert(1111000 , 2 , 10);

至於其他進制間轉換 就跟上面的操作一樣了。

F. 在PHP中如何把地址欄中16進制轉換成中文,要PHP中代碼語句

echo urldecode($_GET['stra']);

G. php 怎麼將utf-8格式的漢字轉換成16進制

//字元串轉換成16進制
function str2hex($str){
$hex = ''
for($i=0,$length=mb_strlen($str); $i<$length; $i++){
$hex .= dechex(ord($str{$i}));
}
return $hex;
}
//16進制轉換成字元串
function hex2str($hex){
$str = ''
$arr = str_split($hex, 2);
foreach($arr as $bit){
$str .= chr(hexdec($bit));
}
return $str;
}
function test(){
//utf8字元測試
$str = '中文'
echo mb_strlen($str);
echo '<br>'

$hex = str2hex($str);
echo $hex;
echo '<br>'

$dec = hex2str($hex);
echo $dec;
echo "<br>";
echo "<hr>";
//gbk測試
$gbkstr = mb_convert_encoding($str,'GBK','UTF-8');
echo mb_strlen($gbkstr);
echo '<br>'

$hex = str2hex($gbkstr);
echo $hex;
echo '<br>'

$dec = mb_convert_encoding(hex2str($hex), 'UTF-8', 'GBK');
echo $dec;
echo "<br>";
}

H. PHP中的中文,轉換為16進制的方法

echo RawUrlEncode( $row_xx['xx']);
================
這樣即可。上面這個用raw的更加標准

I. PHP中有沒有將漢字直接轉換成16進制的函數

<?$str="漢字";$ch16=str_replace("%","",urlencode($str));echo $ch16;?>輸出:BABAD7D6

J. 漢字怎樣轉換十六進制php

//漢字進制轉換
//$string 傳入的漢字或其它字元
//$tobase 要轉換的進制 范圍 2~36 之間任意取值
//$back 返回形式,0 轉換成進制代碼 ; 1 將進制轉換成漢字

function ASCII($String,$tobase,$back){
if( $tobase > 1 && $tobase < 37 ){
if($back == 0){
return preg_replace('/(.)/es',"str_pad(base_convert(ord('\\1'),10,$tobase),8,'0',STR_PAD_LEFT)",$String);
}else{
return preg_replace('/(\w{8})/e',"chr(base_convert('\\1',$tobase,10))",$String);
}
}else{
return false;
}
}

//範例
$str = '我愛你';

$en = ASCII($str,2,0); // 轉換成2進制: 00
echo ASCII($en,2,1); // 轉換成漢字:我愛你

$en = ASCII($str,8,0); // 轉換成8進制: 40
echo ASCII($en,8,1); // 轉換成漢字:我愛你

$en = ASCII($str,10,0); // 轉換成10進制: 60
echo ASCII($en,10,1); // 轉換成漢字:我愛你

$en = ASCII($str,10,0); // 轉換成10進制: 60
echo ASCII($en,10,1); // 轉換成漢字:我愛你

$en = ASCII($str,16,0); // 轉換成10進制: a0
echo ASCII($en,16,1); // 轉換成漢字:我愛你

閱讀全文

與php漢字轉16進制相關的資料

熱點內容
優信二手車解壓後過戶 瀏覽:63
Windows常用c編譯器 瀏覽:780
關於改善國家網路安全的行政命令 瀏覽:835
安卓如何下載網易荒野pc服 瀏覽:656
javainetaddress 瀏覽:106
蘋果4s固件下載完了怎麼解壓 瀏覽:1005
命令zpa 瀏覽:288
python編譯器小程序 瀏覽:946
在app上看視頻怎麼光線調暗 瀏覽:541
可以中文解壓的解壓軟體 瀏覽:594
安卓卸載組件應用怎麼安裝 瀏覽:914
使用面向對象編程的方式 瀏覽:341
程序員項目經理的年終總結範文 瀏覽:932
內衣的加密設計用來幹嘛的 瀏覽:434
淮安數據加密 瀏覽:294
魔高一丈指標源碼 瀏覽:983
松下php研究所 瀏覽:169
c回調java 瀏覽:402
夢幻端游長安地圖互通源碼 瀏覽:747
電腦本地文件如何上傳伺服器 瀏覽:315