php中utf 8編碼下用正規表示式如何匹配漢字

2022-09-13 12:00:14 字數 1021 閱讀 6222

型別:** 知道了php中utf-8編碼下用正規表示式匹配漢字的最終正確表示式——/^[\x-\x]+$/u

在j**ascript中,要判斷字串是中文是很簡單的。比如:

複製** **如下:

var str = "php程式設計";

if (/^[\u4e00-\u9fa5]+$/.test(str)) else

想當然的,在php中來判斷字串是否為中文,就會沿襲這個思路:

複製** **如下:

<?php

$str = "php程式設計";

if (preg_match("/^[\u4e00-\u9fa5]+$/",$str)) else

?>

複製** **如下:

$str = "php程式設計";

if (preg_match("/^[\x-\x]+$/u",$str)) else

發現這次依然對是否為中文判斷失常。不過,既然\x表示的十六進製制資料,為什麼和js裡邊提供的範圍\x4e00-\x9fa5不一樣呢?於是我就換成了下邊的**:

複製** **如下:

$str = "php程式設計";

if (preg_match("/^[\x4e00-\x9fa5]+$/u",$str)) else

本來以為鐵定成功了的事情,沒想到,warning又一次產生了:

warning: preg_match() [function.preg-match]: compilation failed: invalid utf-8 string at offset 6 in test.php on line 3

看來又有錯誤的表達方式了,於是對照了一下那篇文章的表達方式,給「4e00」和「9fa5」兩邊分別用"」包起來,跑了一遍,發現真的準確了:

複製** **如下:

$str = "php程式設計";

if (preg_match("/^[\x-\x]+$/u",$str)) else

java下的 UTF 8編碼

public class utfencode break case break case break case break case break case break default break else if c 0x7f c 0x800 else if c 0x7ff c 0x10000 els...

PHP中文GBK編碼轉UTF 8

iconv 和 mb convert encoding的區別 string mb convert encoding string str,string to encoding mixed from encoding 需要先enable mbstring 擴充套件庫,在 php.ini裡將 exten...

用PHP實現將GB編碼轉換為UTF8

gb2utf8.php 檔案如下 複製 如下 class gb2utf8 function set gb2312.txt this g程式設計客棧t codetable array while list key,value each tmp function convert str this gb ...