国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

PHP讀取漢字的點陣數(shù)據(jù)

2024-05-04 23:36:44
字體:
來源:轉載
供稿:網友

本文給大家詳細講述了使用PHP讀取漢字的點陣數(shù)據(jù)的方法和示例,十分的實用,有需要的小伙伴可以參考下。

項目中遇到的問題:

PHP如何讀取漢字的點陣數(shù)據(jù)?想實現(xiàn)輸入一段文字,能得到這一段文字的所有點陣碼。

解決方法:

簡體中文國標字庫7445個字符,其中漢字6773個,包括一級漢字3755個,二級漢字3008個。采用2字節(jié)(16位二進制)編碼。

區(qū)位碼:國標GB2312規(guī)定,所有的國標漢字與符號組成一個94×94的矩陣。在此方陣中,每一行稱為一個”區(qū)”,每一列稱為一個”位”,因此,這個方陣實際上組成了一個有94個區(qū)(區(qū)號分別為0 1到94)、每個區(qū)內有94個位(位號分別為01到94)的漢字字符集。一個漢字所在的區(qū)號和位號簡單地組合在一起就構成了該漢字的”區(qū)位碼”。在漢字的區(qū)位碼中,高兩位為區(qū)號,低兩位為位號。由此可見,區(qū)位碼與漢字或符號之間是一一對應的。

內碼:漢字的內碼是指在計算機中表示漢字的編碼。機內碼與區(qū)位碼稍有區(qū)別。目前,對于國內大多數(shù)的計算機系統(tǒng),一個漢字的內碼占兩個字節(jié),分別稱為高位字節(jié)與低位字節(jié),且這兩位字節(jié)與區(qū)位碼的關系如下: 內碼高位=區(qū)碼+A0H(H表示十六進制) 內碼低位=位碼+A0H 例如,漢字”啊”的區(qū)位碼為”1601″,區(qū)碼和位碼分別用十六進制表示即為”1001H”,則它的內碼為”B0A1H”。其中B0H為內碼的高位字節(jié),A1H為內碼的低位字節(jié)。

返回由0和1組成的字符串

 

 
  1. <?php 
  2. /** 
  3. * 讀取漢字點陣數(shù)據(jù) 
  4. * 
  5. */ 
  6.  
  7. $str = "中華人民共和國"
  8.  
  9. $font_file_name = "simsun12.fon"// 點陣字庫文件名 
  10. $font_width = 12; // 單字寬度 
  11. $font_height = 12; // 單字高度 
  12. $start_offset = 0; // 偏移 
  13.  
  14. $fp = fopen($font_file_name"rb"); 
  15.  
  16. $offset_size = $font_width * $font_height / 8; 
  17. $string_size = $font_width * $font_height
  18. $dot_string = ""
  19.  
  20. for ($i = 0; $i < strlen($str); $i ++) 
  21. if (ord($str{$i}) > 160) 
  22. // 先求區(qū)位碼,然后再計算其在區(qū)位碼二維表中的位置,進而得出此字符在文件中的偏移 
  23. $offset = ((ord($str{$i}) - 0xa1) * 94 + ord($str{$i + 1}) - 0xa1) * $offset_size
  24. $i ++; 
  25. else 
  26. $offset = (ord($str{$i}) + 156 - 1) * $offset_size
  27.  
  28. // 讀取其點陣數(shù)據(jù) 
  29. fseek($fp$start_offset + $offset, SEEK_SET); 
  30. $bindot = fread($fp$offset_size); 
  31.  
  32. for ($j = 0; $j < $offset_size$j ++) 
  33. // 將二進制點陣數(shù)據(jù)轉化為字符串 
  34. $dot_string .= sprintf("%08b", ord($bindot{$j})); 
  35.  
  36. fclose($fp); 
  37.  
  38. echo $dot_string
  39. ?> 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 青神县| 额济纳旗| 曲周县| 即墨市| 保德县| 固阳县| 扎赉特旗| 绩溪县| 华亭县| 三明市| 中西区| 景德镇市| 乐陵市| 赫章县| 东乡族自治县| 濮阳市| 扎赉特旗| 浏阳市| 仙游县| 腾冲县| 南乐县| 梨树县| 抚宁县| 什邡市| 广南县| 迁安市| 江川县| 呼玛县| 哈密市| 新河县| 阿荣旗| 进贤县| 哈尔滨市| 滨州市| 玉田县| 浏阳市| 新竹市| 依兰县| 道真| 大余县| 宁海县|