導航:首頁 > 編程語言 > phputf16

phputf16

發布時間:2023-05-27 18:01:07

A. php導入csv文件輸出是亂碼,怎麼解決

//這是我前幾天回答過的一個問題下面以讀取淘寶csv文件為例
if($result){//如果上傳成功了,這是文件路徑
if(!($handle=fopen_utf8($result,"r"))===FALSE){//調取下邊函數fopen_utf8;
$errorArr=array();
$i=0;
while(($cols=fgetcsv($handle,1000," "))!==FALSE){
++$i;
if($i<4)continue;
$taobaolmsx=$cols[21];//寶貝屬性;
$taobaoxxsx=$cols[30];//銷售屬性;
$goodsBn=$cols[33];//商家編碼;

}
fclose($handle);
}

unlink($result);
}else{
echo'fileuploaderror';exit;
}

/*讀取csv文件用*/
functionfopen_utf8($filename){
$encoding='';
$handle=fopen($filename,'r');
$bom=fread($handle,2);
rewind($handle);

if($bom===chr(0xff).chr(0xfe)||$bom===chr(0xfe).chr(0xff)){
//UTF16ByteOrderMarkpresent
$encoding='UTF-16';
}else{
$file_sample=fread($handle,1000)+'e';//readfirst1000bytes
//+eisaworkaroundformb_stringbug
rewind($handle);

$encoding=mb_detect_encoding($file_sample,'UTF-8,UTF-7,ASCII,EUC-JP,SJIS,eucJP-win,SJIS-win,JIS,ISO-2022-JP');
}
if($encoding){
stream_filter_append($handle,'convert.iconv.'.$encoding.'/UTF-8');
}
return($handle);
}

B. PHP file_get_contents後的數據轉碼問題

$str = iconv('GB2312','UTF-8',$contents);
試褲明試,一般胡鍵告這樣GB2312或GBK應該沒問亮州題的,
頁面也必須是utf-8的

C. 批量生成卡號密碼的php程序

給你一些代碼吧,具體怎麼改,你自己根據自己的需要改一下.
<?php
function MakeCard()
{
set_time_limit(0);

//處理緩沖區
ob_end_clean();
ob_implicit_flush(true);
echo str_pad(" ", 256);

if(intval($_POST['num']>0)) $num=intval($_POST['num']); //數量
if(intval($_POST['point']>0)) $point=intval($_POST['point']); //點數
if(intval($_POST['batch']>0)) $batch=intval($_POST['batch']); //批號
if(($_POST['ym']!="")) $ym=$_POST['ym']; //發行年月
else $ym=date('ym');

if($num==0) return;

$num=$num*10000; //卡的張數,即記錄數

echo "<p>開始 ".date("H:i:s")." ";

for($i=1;$i<=$num;$i++)
{
$sn=sprintf("%02s%s%06s",$batch,$ym,$i);
$seek=mt_rand(0,9999).mt_rand(0,9999).mt_rand(0,9999); //12位
$start=mt_rand(0,20);
$str=strtoupper(substr(md5($seek),$start,12));
$str=str_replace("O",chr(mt_rand(65,78)),$str);
$str=str_replace("0",chr(mt_rand(65,78)),$str);
$row=array('sn'=>$sn,'password'=>$str,'created'=>time(),'point'=>$point);
//查重
//在這里加插入數據的代碼.

echo " 結束 ".date("H:i:s")."";
printf("<br>成功生成:%s萬個 %s點 的密碼</p>",$num/1e4,$point);
return $num;
} //函數結束

$numbers=MakeCark();
?>

D. json_decode忽略錯誤

解決方法如下
on_last_error ― 返回最後發生的錯誤,如果有,返回 JSON 編碼解碼時最後發生的錯誤。

int json_last_error ( void )
常量 含義 可用性
JSON_ERROR_NONE 沒有錯誤發生
JSON_ERROR_DEPTH 到達了最大堆棧深度
JSON_ERROR_STATE_MISMATCH 無效或異常的 JSON
JSON_ERROR_CTRL_CHAR 控制字元錯誤,可能是編碼不對
JSON_ERROR_SYNTAX 語法錯誤
JSON_ERROR_UTF8 異常的 UTF-8 字元,也許是因為不正確的編碼。 PHP 5.3.3
JSON_ERROR_RECURSION One or more recursive references in the value to be encoded PHP 5.5.0
JSON_ERROR_INF_OR_NAN One or more NAN or INF values in the value to be encoded PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE 指定的類型,值無法編碼。 PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME 指定的屬性名無法編碼。 PHP 7.0.0
JSON_ERROR_UTF16 畸形的 UTF-16 字元,可能因為字元編碼不正確。 PHP 7.0.0

<?php // 一個有效的 json 字元串 $json[] = '{"Organization": "PHP Documentation Team"}'; // 一個無效的 json 字元串會導致一個語法錯誤,在這個例子里我們使用 ' 代替了 " 作為引號 $json[] = "{'Organization': 'PHP Documentation Team'}"; foreach ($json as $string) { echo 'Decoding: ' . $string; json_decode($string); switch (json_last_error()) { case JSON_ERROR_NONE: echo ' - No errors'; break; case JSON_ERROR_DEPTH: echo ' - Maximum stack depth exceeded'; break; case JSON_ERROR_STATE_MISMATCH: echo ' - Underflow or the modes mismatch'; break; case JSON_ERROR_CTRL_CHAR: echo ' - Unexpected control character found'; break; case JSON_ERROR_SYNTAX: echo ' - Syntax error, malformed JSON'; break; case JSON_ERROR_UTF8: echo ' - Malformed UTF-8 characters, possibly incorrectly encoded'; break; default: echo ' - Unknown error'; break; } echo PHP_EOL; }

E. 請問 php 正則中的這些是什麼編碼呢

一:[\x81-\xfe]格式的正則:

$s=preg_replace('/^([\x81-\xfe][\x40-\xfe])*/','0',$neirong); 這裡面的大多是日韓文字

二:x{4e00}格式的正則:

preg_match("/^[\x{4e00}-\x{9fa5}]{1,4}/u",$str); 這裡面是匹配中文;

——————————————————————————
這些字元集尤其是日文字元集的各種字、標點以及特殊符號的時候有所幫助。
UTF8
[\x01-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}
UTF16
[\x00-\xd7][\xe0-\xff]|[\xd8-\xdf][\x00-\xff]{2}
JIS
[\x20-\x7e]|[\x21-\x5f]|[\x21-\x7e]{2}
SJIS
[\x20-\x7e]|[\xa1-\xdf]|([\x81-\x9f]|[\xe0-\xef])([\x40-\x7e]|[\x80-\xfc])
EUC_JP
[\x20-\x7e]|\x81[\xa1-\xdf]|[\xa1-\xfe][\xa1-\xfe]|\x8f[\xa1-\xfe]{2}
EUC_JP標點符號及特殊字元
[\xa1-\xa2][\xa0-\xfe]
EUC_JP全形數字
\xa3[\xb0-\xb9]
EUC_JP全形大寫英文
\xa3[\xc1-\xda]
EUC_JP全形小寫英文
\xa3[\xe1-\xfa]
EUC_JP全形平假名
\xa4[\xa1-\xf3]
EUC_JP全形片假名 [color=Red]2007-03-12 15:00更新[/color]
\xa3[\xb0-\xb9]|\xa3[\xc1-\xda]|\xa5[\xa1-\xf6][\xa3][\xb0-\xfa]|[\xa1][\xbc-\xbe]|[\xa1][\xdd]
EUC_JP全形漢字 [color=Red]2007-03-12 15:06更新[/color]
[\xb0-\xcf][\xa0-\xd3]|[\xd0-\xf4][\xa0-\xfe]|[\xB0-\xF3][\xA1-\xFE]|[\xF4][\xA1-\xA6]|[\xA4][\xA1-\xF3]|[\xA5][\xA1-\xF6]|[\xA1][\xBC-\xBE]
Big5
[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|[\xa1-\xfe])
GBK
[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]
GB2312漢字
[\xb0-\xf7][\xa0-\xfe]
GB2312半形標點符號及特殊符號
\xa1[\xa2-\xfe]
GB2312羅馬數組及項目序號
\xa2([\xa1-\xaa]|[\xb1-\xbf]|[\xc0-\xdf]|[\xe0-\xe2]|[\xe5-\xee]|[\xf1-\xfc])
GB2312全形標點及全形字母
\xa3[\xa1-\xfe]
GB2312日文平假名
\xa4[\xa1-\xf3]
GB2312日文片假名
\xa5[\xa1-\xf6]
補充:
GB18030
[\x00-\x7f]|[\x81-\xfe][\x40-\xfe]|[\x81-\xfe][\x30-\x39][\x81-\xfe][\x30-\x39]
[color=Red]2007-03-12 21:35 補充[/color]
日文半形空格
\x20
SJIS全形空格
(?:\x81\x81)
SJIS全形數字
(?:\x82[\x4f-\x58])
SJIS全形大寫英文
(?:\x82[\x60-\x79])
SJIS全形小寫英文
(?:\x82[\x81-\x9a])
SJIS全形平假名
(?:\x82[\x9f-\xf1])
SJIS全形平假名擴展
(?:\x82[\x9f-\xf1]|\x81[\x4a\x4b\x54\x55])
SJIS全形片假名
(?:\x83[\x40-\x96])
SJIS全形片假名擴展
(?:\x83[\x40-\x96]|\x81[\x45\x5b\x52\x53])
EUC_JP全形空格
(?:\xa1\xa1)
EUC半形片假名
(?:\x8e[\xa6-\xdf])

——————————————————————————

下面是utf-8編碼的例子:
$str = "漢字";
if (preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) {
print("該字元串全部是中文");
} else {
print("該字元串不全部是中文");
}

下面的例子包含gbk,gb2312的例子:

<?php
$action = trim($_GET['action']);
if($action == "sub")
{
$str = $_POST['dir'];
//if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312漢字字母數字下劃線正則表達式
if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u",$str)) //UTF-8漢字字母數字下劃線正則表達式
{
echo "<font color=red>您輸入的[".$str."]含有違法字元</font>";
}
else
{
echo "<font color=green>您輸入的[".$str."]完全合法,通過!</font>";
}
}
?>

F. 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>";
}

G. 如何將漢字轉換為iso-8859-1的字元串 - PHP進階討論

呵呵,我知道你的意思了,你看那個網頁的源碼,可以看到全是 xxxx 這樣的,這種寫法確孝飢實是可以在iso8859下面正確顯示中日韓文字。不過這樣做鏈模本質上是藉助了utf-16編碼,那個xxxxx就是漢字在uft-16下兩個位元組的值。請參考:在任意字元集下正常顯示網棚慎緩頁的方法http://www.phpchina.com/?action_viewnews_itemid_1107.html個人意見:這樣做沒有必要,使用unicode足夠了:)此外,htmlentities不是用來轉化字元集的,他的作用是把字元串中 ,& 等特殊字元轉換成 <, >, &這樣的形式,以免造成歧義。轉化字元集可以使用 iconv,mb_encoding_convert函數。[]

閱讀全文

與phputf16相關的資料

熱點內容
失控的演算法代碼 瀏覽:293
程序員說有人愛你怎麼回答 瀏覽:106
騰訊游戲安卓怎麼用ios登錄 瀏覽:759
石獅雲存儲伺服器 瀏覽:180
python滲透入門到精通 瀏覽:272
如何真機調試安卓進程 瀏覽:739
農行app怎麼交公共維修基金 瀏覽:667
python中字典增加元素 瀏覽:240
伺服器端渲染的數據怎麼爬 瀏覽:163
壓縮空氣噴射器 瀏覽:488
python提高效率 瀏覽:796
華為文件管理怎麼樣輸入解壓碼 瀏覽:800
深思加密狗初始化 瀏覽:566
黃金崩潰pdf 瀏覽:310
華為特定簡訊息加密 瀏覽:375
微機原理與單片機技術李精華答案 瀏覽:816
pic12c508單片機 瀏覽:309
androidgps調用 瀏覽:226
金文編pdf 瀏覽:445
14乘87減147的簡便演算法 瀏覽:473