Posts Tagged ‘ unicode ’
[轉載][PHP]處理 UTF-8
轉載自: PHP 最佳實踐方法
此章節由 Alex Cabal 撰寫,節錄自 PHP Best Practices 並作為我們 UTF-8 建議的基礎。
這不是開玩笑的,請小心與細心並前後一致地處理它。
PHP 至今在底層仍未支援 Unicode。而有許多方式可以確認 UTF-8 字串的處理是正確的,但通常不容易,還需要從上而下翻遍程序所有階層,從 HTML、SQL 到 PHP。我們將會聚焦在簡短的實踐總結。
[PHP]如何得知輸入的字串是否為 UTF-8 編碼
使用下列函數,如果傳回值為 true,表示輸入的字串為 UTF-8 編碼:
// Returns true if $string is valid UTF-8 and false otherwise. function is_utf8($string) { return preg_match('%^(?: [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )*$%xs', $string); }
參考網頁
- 如何得知輸入的字串是否為 UTF-8 編碼 (Perl)
- W3C I18N FAQ:Multilingual Forms
- PHP:md_detect_encoding
- PHP:Multibyte String Functions
[Perl]如何得知輸入的字串是否為 UTF-8 編碼
使用下列函數,如果傳回值為 1,表示輸入的字串為 UTF-8 編碼:
#Returns 1 if $text is valid UTF-8 and 0 otherwise. sub is_utf8 { my $text = shift; if( $text =~ m/^( [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )*$/x ){ return 1; } else{ return 0; } } #sub is_utf8
參考網頁
[Perl]Big5/UTF-8 編碼轉換的模組
Big5 及 UTF-8 編碼的轉換方式有兩種 (請先安裝 Encode::compat 模組):
方式一
use Encode::compat; use Encode qw(from_to); my $string = "中文"; #Big5 轉 UTF-8 from_to($string, 'big5', 'utf8'); print "$string\n"; #UTF-8 轉 Big5 from_to($string, 'utf8', 'big5'); print "$string\n";
[轉載]Unicode 脫逸序列轉換
轉載自: IT Inside
這裡提供一段程式碼,可以透過 JavaScript 將文字轉換為 Unicode 脫逸序列。這段程式碼,不論是對網頁開發人員,還是對 java resource bundle 的翻譯人員,都有很大的方便性。使用時只要將底下的程式碼複製起來,以 html 副檔名儲存,就可以用 browser 執行了。
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> <script language=javascript> <!-- function StringToUniCode(source) { sret = ""; // Unicode 跳脫序列之格式為 \u00ff for(var i=0; i < source.length; i++) { var num = new Number( source.charCodeAt(i)); sret += "\\u" + num.toString(16); } return sret; } function convert(){ document.forms.content.result.value = StringToUniCode(document.forms.content.source.value); } //--> </script> 將文字轉成 Unicode 跳脫序列 <form name=content> 來源:<input type=TEXT name=source size=40 value="常用連絡人"><br /> 結果:<input type=TEXT name=result size=40><br /> <input type=button value=轉換 onclick="convert()"> </form>
INFORMATION
我們解決了什麼問題?我們創造了什麼價值?
近期迴響