發表文章

目前顯示的是有「亂碼」標籤的文章

PHPlot 中文亂碼

圖片
 現階段比較常用的繪圖函式大多是 javascript 為主流,有很多,也不勝枚舉,D3.js、C3.js、Chart.js ...,遙想(抬頭)只有 GD 可用的年代,回頭用這函式老而不殘,實在是因為抓取資料的 PHP 程式運作順暢,想說就直接用 PHP 把圖做一做,哪知道,只怕是更折騰,這次又碰到老朋友,俗稱「亂碼」的編碼問題… 工作環境:   Windows 10 home   php     phplot     workplace/font/fireflysung.ttf 症狀: SetFontTTF: Can't find TrueType font fireflysung.ttf 整片白的一張圖 試了半天,原來只能設定絕對路徑,不能設相對路徑 範例: //all these below WORKS with setting of absolute path 用絕對路徑、絕對路徑、絕對路徑  $plot -> SetTTFPath ( "D: \\ workplace \\ font \\ " );     //works $plot -> SetDefaultTTFont ( 'NotoSerifCJKtc-Black.otf' );   //works $plot -> SetTitle ( "符合與其他可能" );   //works  //these also works with correct path setting //using ttf font with correct path setting //$plot->SetDefaultTTFont('fireflysung.ttf');  //works //event using otf font works...

tinker 中文字為亂碼

 亂碼這事,事小,但是像那苦纏不捨的蒼蠅,不理牠,牠就一直在旁邊飛著、吵著。 工作環境:   Laravel 7   Database Collation: utf8mb4_unicode_ci   tinker $php artisan tinker >>>  \App\Models\Model_Name::all() => 列出所有的資料,顯示的部份沒有問題,正確地顯示中文內容 >>> DB::table('table_name')->get(); => 中文內容無法正確地顯示 >>>  DB::table('table_name')->charset = 'utf8mb4'; >>>  DB::table('table_name')->collation = 'utf8mb4_unicode_ci'; 再次  >>> DB::table('table_name')->get();  => 正確地顯示中文內容  重開終端機也可以正確地顯示中文內容   -------------------- FAIL  --------------------  DB::table('table_name')->charset('utf8mb4')  DB::table('table_name')->collate('utf8mb4_unicode_ci')  DB::table('table_name')->collations('utf8mb4_unicode_ci') -------------------- FAIL  --------------------   收工!

barcode printer 使用 php socket 列印

話說,條碼印表機實在很神秘,要讓它印個條碼非得透過特定應用程式不可,這次很幸運可以試著自已把東東印出來,透過之前從沒用過的 socket ,socket 這東東看了半天也看不懂是個什麼東西 ,不過本著一貫在不解中摸黑,只問結果不求甚解的鴕鳥心態,就……試試。 $cht_string = "我要用中文"; $cht_string = iconv(mb_detect_encoding($cht_string), "UTF-8", $cht_string); $cht_big5 = iconv(mb_detect_encoding($cht_string), "BIG-5", $cht_string); $host = "1.2.3.4"; $port    = 9100; //default listening port for printer $message = ' Hello, world'.$cht_string.$cht_big5.' '; // create socket // 0, IP // SOL_TCP = specify protocol of TCP, UDP, FTP ... $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if(!$socket){     $errorcode = socket_last_error();     $errormsg = socket_strerror($errorcode);     socket_close($socket);    die("Could not create socket: [$errorcode] $errormsg\n"); } // connect to server $result = socket_connect($socket, $host, $port); if(!$result){         $errorcode = socket_last_error();       ...

轉換檔案編碼 以使用 Madedit 為例

圖片
有些檔案,因為編碼的關係,應用程式一時間無法選用正確的解碼方式,出現人腦無法判別辨識的字樣,這種狀況有個通稱,就叫「亂碼」。 有很多的文字編輯器都可以處理這類的狀況,說到底就是告訴應用程式,指定某個編碼來顯示內容,而筆者跑貫用一個名為 Madedit 的編輯器,它是一個開發程式用的編輯器,操作界面中有個「轉換檔案編碼」的工具,用來轉換檔案的編碼(像是電影字幕檔)十分直覺好用。 工作環境︰ Windows XP ~ 7(7之後還沒試,應該可用,也有 Linux 版) Madedit (目前0.2.9,有綠色版,免安裝也可用) 開啟一個文字檔案(此例為Big5)的內容 決定把檔案轉換成什麼編碼格式,目前常用的其實是 UTF-8 編碼格式 雖然感覺沒有變動,但是其實檔案編碼格式己經改變 收工!