2019年11月20日 星期三

Java 不同編碼字串, 其字串長度大小計算

以 Java 開發專案, 在 DAO 寫入資料庫時, 常遇到JAVA 字串與資料庫編碼不一致,
有時會產生字串過長,導致無法寫入資料庫的情況.

這時就要在入庫前, 先驗證 JAVA 編碼字串是否超出資料庫欄位長度

JAVA 依 不同編碼, 其長度是不一樣的

如:
String  c_str = "臺北市私立國際醫療長期照顧中心(養護型)";

byte[]  BIG5B = c_str .getBytes("BIG5");
byte[]  UTF8B = c_str .getBytes("UTF-8");
byte[]  U16LEB = c_str .getBytes("UTF16LE");

System.out.println( BIG5B .length );  // 38  : BIG5編碼每個中文字為  2 Bytes, 英數符號 為 1 Bytes
System.out.println( UTF8B .length );    // 56  :  UTF-8編碼每個中文字為  3 Bytes 英數符號 為 1 Bytes
System.out.println( U16LEB .length );  // 40  : U16LEB UNICODE 編碼


Byte Array 擷取字串 (由 Byte 轉換 為字串 )
byte[] n_UTF8B = Arrays.copyOfRange( UTF8B , 0, 50 );
String n_str = new String( n_UTF8B, "UTF-8");

轉成字串後, 部分中文字會被切成一半造成亂碼!! 須注意




2019年10月9日 星期三

在 Eclipse IDE 安裝 Kotlin 於 Marketplace 無安裝清單之解決方法

新版 Eclipse IDE 2019‑09 在 Marketplace 以搜尋方式尋找 Kotlin 卻無結果清單
此時改用 Help --> Install New Software 安裝方式可獲得解決


Kotlin 下載外掛網址http://dl.bintray.com/jetbrains/kotlin/eclipse-plugin/last/




2019年9月27日 星期五

Jasper Report 學習紀錄(初稿)

個人偏好純 JAVA 類開發工具, 一個類似 SAP 水晶報表 Crystal Report 開發工具 iReport-Designer , 使用與 Eclipse IDE 相同介面, 減少學習曲線, 快速進入報表設計的世界.

學前預備 :

1. 下載 Jar URL http://sourceforge.net/projects/jasperreports/files/jasperreports/
     or  (含舊版本)  https://sourceforge.net/projects/ireport/files/iReport/

2. 下載 IReport IDE 設計工具 iReport-Designer
     https://community.jaspersoft.com/project/ireport-designer/releases
     (  下載前需要先註冊登入帳號 )
3. 參考資源:
     IT 邦幫忙
     .使用iReport+JasperReport產生PDF及Excel報表(1)
        https://ithelp.ithome.com.tw/articles/10210719?sc=rss.qu

     2.使用iReport+JasperReport產生PDF及Excel報表(2)
        https://ithelp.ithome.com.tw/articles/10211358


轉用字型下載
https://mvnrepository.com/artifact/net.sf.jasperreports/jasperreports-fonts

2018年3月21日 星期三

線上密碼產生器


(1).
有時在註冊一些網站時, 總是要訂一個密碼, 大多數的人,喜歡取用'傻瓜密碼' (即用自己生日,身分證等), 無形中產生個資洩漏問題, 目前有個方便網站, https://randomkeygen.com/
進入後, 就有密碼可選用, 若不喜歡, 按 F5 鍵, 或重新整理網頁, 就可更動新密碼.


(2) VULTR :  Password Generator
https://www.vultr.com/resources/secure-password-generator/?action=generatepassword&lowercase=on&uppercase=on&numbers=on&symbols=on&passwordlength=8https://www.vultr.com/resources/secure-password-generator/?action=generatepassword&lowercase=on&uppercase=on&numbers=on&symbols=on&passwordlength=8

2018年3月20日 星期二

JSON 格式與 JavaScript 解析教學範例

出處 :  MIS 腳印
https://smalljacky.com/uncategorized/json-format-and-javascript/

1、簡介

1-1、什麼是 JSON

  • JSON (JavaScript Object Notation,JavaScript 物件表示法)。
  • 一種以純文字為基礎,來儲存和交換簡單結構的輕量級「資料交換格式」(類似 XML)。
  • 獨立於語言。
  • 具有自我描述性,更易於人理解、閱讀和編寫,同時也易於機器解析和生成。
  • JSON 比 XML(eXtensible Markup Language,可延伸標記式語言)更小、更快且更易解析。

1-2、應用領域

JSON 最開始被廣泛的應用於 Web 的開發,隨著 Web 2.0 的方興未艾,JSON 在 Web 資料傳輸領域占有重要的地位。
JSON 因小巧與瀏覽器內建快速解析支援,因此較適用於網路資料傳輸領域,而目前最常用在 AJAX (Asynchronous JavaScript and XML,非同步的 JavaScript 與 XML 技術) 的資料傳輸。

1-3、JSON 與 XML 比較

JSON 與 XML 最大的不同在於 XML 是一個完整的標記語言,而 JSON 不是。這使得 XML 在程式判讀上需要比較多的功夫。主要的原因在於 XML 的設計理念與 JSON 不同。XML 利用標記語言的特性提供了絕佳的延展性(如 XPath),在資料儲存,擴充功能及高階檢索方面具備對 JSON 的優勢,而 JSON 則由於比 XML 更加小巧,以及瀏覽器的內建快速解析支援,使得其更適用於網路資料傳輸領域。

2、JSON 格式

2-1、字串

JSON 字串可以包含物件(Object)或陣列(Array)資料。

2-1-1、物件

  • 一個物件以 { 開始,並以 } 結束,來寫入資料。
  • name 為字串,必須以 "" 括起來。
  • name 與 value 之間使用 : 分隔。
  • 多個 name:value 之間使用 , 分隔。
{"name": value, "name": value}

2-1-2、陣列

  • 一個陣列以 [ 開始,並以 ] 結束,來寫入資料。
  • 多個 value 之間使用 , 分隔。
[value, value]

2-2、物件和陣列值

  • 物件(Object):{}
  • 陣列(Array):[]
  • 字串(String):以 "" 括起來。
  • 數值(number):0-9 的數字組合(整數、小數或負數)。
  • 布林(boolean):true 或 false
  • 空值(Null):null
{"array": ["string", 10, 1.0, -1, true, false, null]}

3、JSON 字串範例

例如一個會員的基本資料,使用 JSON 字串表示如下:
1
2
3
4
5
6
7
8
9
10
{
    "number": "1020501",
    "name": "小傑",
    "age": 32,
    "sex": "M",
    "interest": [
        "網頁設計",
        "撰寫文章"
    ]
}

Java 不同編碼字串, 其字串長度大小計算

以 Java 開發專案, 在 DAO 寫入資料庫時, 常遇到JAVA 字串與資料庫編碼不一致, 有時會產生字串過長,導致無法寫入資料庫的情況. 這時就要在入庫前, 先驗證 JAVA 編碼字串是否超出資料庫欄位長度 JAVA 依 不同編碼, 其長度是不一樣的 如: ...