PHP6的新特性:Unicode和TextIterator
Jun 08, 2016 pm 05:32 PM我剛剛安裝了PHP6 DEV版本,決定測(cè)試一下PHP6的新特性-PHP的Unicode支持。我并沒(méi)有打算講PHP6的新特性或者是Unicode,下面僅僅是我做的關(guān)于Unicode的測(cè)試。
首先要做的是讓php6支持Unicode,在php.ini文件中修改。
;;;;;;;;;;;;;;;;;;;;
; Unicode settings ;
;;;;;;;;;;;;;;;;;;;;unicode.semantics = on
unicode.runtime_encoding = utf-8
unicode.script_encoding = utf-8
unicode.output_encoding = utf-8
unicode.from_error_mode = U_INVALID_SUBSTITUTE
unicode.from_error_subst_char = 3f
由于我使用的是法語(yǔ)和英語(yǔ)有所不同,有一些字符需要處理。
所以,我第一次試驗(yàn)的目的是檢驗(yàn)strlen功能的Unicode …
$word = "être";
echo "Length: ".strlen($word);
結(jié)果是: Length: 4? 。結(jié)果非常的正確… …但它僅僅是個(gè)開始! : )
我的第二個(gè)測(cè)試對(duì)象是與PHP6新的SPL中的TextIterator textiterator
$word = "être";
foreach (new TextIterator($word, TextIterator::CHARACTER) as $character) {
? var_inspect($character);
}
輸出: unicode(1) “ê” { 00ea } unicode(1) “t” { 0074 } unicode(1) “r” { 0072 } unicode(1) “e” { 0065 }
分解單詞,得到了很多的字母和字母的信息…
TextIterator::CHARACTER的操作看上去非常的強(qiáng)大啊,不過(guò)TextIterator::WORD更強(qiáng)大
$sentences = "Bonjour, nous sommes Fran?ais ! A?e :)";
foreach (new TextIterator($sentences, TextIterator::WORD) as $word) {
??? var_inspect($word);
}
得到的結(jié)果: unicode(7) “Bonjour” { 0042 006f 006e 006a 006f 0075 0072 } unicode(1) “,” { 002c } unicode(1) ” ” { 0020 } unicode(4) “nous” { 006e 006f 0075 0073 } unicode(1) ” ” { 0020 } unicode(6) “sommes” { 0073 006f 006d 006d 0065 0073 } unicode(1) ” ” { 0020 } unicode(8) “Fran?ais” { 0046 0072 0061 006e 00e7 0061 0069 0073 } unicode(1) ” ” { 0020 }

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

深入了解PHP:JSONUnicode轉(zhuǎn)中文的實(shí)作方法在開發(fā)中,我們經(jīng)常會(huì)遇到需要處理JSON資料的情況,而JSON中的Unicode編碼在一些場(chǎng)景下會(huì)為我們帶來(lái)一些問(wèn)題,特別是當(dāng)需要將Unicode編碼轉(zhuǎn)換為中文字元時(shí)。在PHP中,有一些方法可以幫助我們實(shí)現(xiàn)這個(gè)轉(zhuǎn)換過(guò)程,以下將介紹常用的方法,並提供具體的程式碼範(fàn)例。首先,讓我們先來(lái)了解一下JSON中Un

Unicode是一種字元編碼標(biāo)準(zhǔn),用於表示各種語(yǔ)言和符號(hào)。若要將Unicode編碼轉(zhuǎn)換為中文字符,可使用Python的內(nèi)建函數(shù)chr()和ord()。

JSON(JavaScriptObjectNotation)是一種輕量級(jí)的資料交換格式,通常用於Web應(yīng)用程式之間的資料交換。在處理JSON資料時(shí),我們經(jīng)常會(huì)遇到Unicode編碼的中文字元(例如"u4e2du6587"),需要將其轉(zhuǎn)換為可讀的中文字元。在PHP中,我們可以透過(guò)一些簡(jiǎn)單的方法來(lái)實(shí)現(xiàn)這個(gè)轉(zhuǎn)換。接下來(lái),我們將詳細(xì)介紹如何將JSONUnico

Eclipse中文亂碼困擾?試試這些解決方案,需要具體程式碼範(fàn)例一、背景介紹隨著電腦科技的不斷發(fā)展,中文在軟體開發(fā)中扮演越來(lái)越重要的角色。然而,許多開發(fā)者在使用Eclipse進(jìn)行中文開發(fā)時(shí)會(huì)遇到亂碼問(wèn)題,影響了工作效率。那麼,本文將介紹一些常見的亂碼問(wèn)題,並給出對(duì)應(yīng)的解決方案及程式碼範(fàn)例,幫助讀者解決Eclipse中文亂碼問(wèn)題。二、常見亂碼問(wèn)題及解決方案文件

php提交表單通過(guò)后,彈出的對(duì)話框怎樣在當(dāng)前頁(yè)彈出php提交表單通過(guò)后,彈出的對(duì)話框怎樣在當(dāng)前頁(yè)彈出而不是在空白頁(yè)彈出?想實(shí)現(xiàn)這樣的效果:而不是空白頁(yè)彈出:------解決方案--------------------如果你的驗(yàn)證用PHP在后端,那么就用Ajax;僅供參考:HTML code

unicode和ascii的差異包括編碼範(fàn)圍不同、儲(chǔ)存空間不同和相容性不同等。詳細(xì)介紹:1、編碼範(fàn)圍不同,ascii的編碼範(fàn)圍是0-127,主要用於表示英語(yǔ)字母,而unicode的編碼範(fàn)圍廣闊得多,可以表示幾乎所有的語(yǔ)言字符;2、存儲(chǔ)空間不同,ascii通常使用1個(gè)位元組來(lái)儲(chǔ)存一個(gè)字符,而unicode可能使用2個(gè)或更多的位元組來(lái)儲(chǔ)存一個(gè)字符;3、相容性不同等等。

隨著大數(shù)據(jù)、雲(yún)端運(yùn)算等技術(shù)的發(fā)展,資料庫(kù)成為了企業(yè)資訊化的重要基石之一。在Java開發(fā)的應(yīng)用程式中,連接MySQL資料庫(kù)已成為常態(tài)。然而,在這個(gè)過(guò)程中,我們常常會(huì)遭遇一個(gè)棘手的問(wèn)題──Unicode字元集編碼不一致。這不僅會(huì)影響我們的開發(fā)效率,還會(huì)影響應(yīng)用程式的效能和穩(wěn)定性。本文將介紹如何解決這個(gè)問(wèn)題,讓Java連接MySQL資料庫(kù)更順暢。一、Unicode

順序存取順序存取是在Java語(yǔ)言中處理字串的一個(gè)基本操作。在這種方法下,輸入字串中的每個(gè)字元從頭到尾按順序訪問(wèn),或有時(shí)從尾至頭訪問(wèn)。本小節(jié)將討論使用順序存取方法從一個(gè)字串建立一個(gè)32位碼位數(shù)組的7個(gè)技術(shù)範(fàn)例,並估計(jì)它們的處理時(shí)間。範(fàn)例1-1:基準(zhǔn)測(cè)試(不支援代理對(duì))清單1將16位元char型別值直接指派給32位碼位值,完全沒(méi)有考慮代理程式對(duì):清單1.不支援代理程式對(duì)int[]toCodePointArray(Stringstr) {//Example1-1intlen=str.length();//t
