2014-08-27

Indy IdUDPServer/IdUDPClient 接收傳送中文字

透過 Indy 套件的 IdUDPServer / IdUDPClient 收發訊息時,英文基本上一定是沒啥問題,但遇到傳送中文訊息,以Indy的預設編碼傳送後接收顯示為亂碼,很明顯是編碼出了狀況,測試的環境為Win7 + XE4,TextEncoding的功能參數必須 uses IdGlobal 才會正常,最初測試時試了半天找不到正確的參數,只好去 IdGlobal.pas 翻一下,找到這個:

















在使用 IdUDPServer / IdUDPClient 收發時,下列兩種方式都可以正常傳送顯示中文,以IdUDPClient為例,IdUDPServer 也適用:

測試環境:

  • Windows 7
  • Delphi XE4 測試版


uses IdGlobal;

..............

IdUDPClient1.Send(Edit1.Text, IndyTextEncoding_UTF8);

or

GIdDefaultTextEncoding := encUTF8;
IdUDPClient1.Send(Edit1.Text);


2014-06-12

Delphi XE? + dbexpress + sqlite3

這兩天空檔在弄個股票資訊蒐集的小工具當練功,想到要用sqlite來當資料庫,以SimpleDataSet來連接sqlite,但在開發階段Connection enable時老是會跳出"sqlite3.dll not found"的錯誤訊息,而且sqlite3.dll已放置在source code目錄下當然也放在win32/debug和win32/release目錄下,還是會出現一樣的錯誤,不過如果直接以執行檔的方式運行後再連接sqlite就可以,看樣子開發階段應該在某個地方也要放才對。
去問了大神找到這篇,原來這兩個地方也要擺,真的有效。

  1. 32bit 的sqlite3.dll 通常放在 C:\Windows\SysWOW64
  2. 64bit 的sqlite3.dll 就放在 C:\Windows\system32