如何將資料庫的中文轉成JSON碼 |
答題得分者是:sryang
|
pkz0718
一般會員 發表:4 回覆:7 積分:2 註冊:2013-08-13 發送簡訊給我 |
目前嘗試了多個方法,目前最大的問題是如何將 中文->JSON的碼 \u53F6\u6625\u5A9A <---例如這個,以下為小弟弄的程式
function TWebModule1.GetAgent3(const sid: string) :TJSONObject; var cmd: TDBXCommand; date_temp : TDBXReader; begin Result := TJSONObject.Create; cmd := dbx4Conn.CreateCommand; try cmd.Text := ' select a.id,a.description,b.description as degree,a.pid,a.certif,a.join_Date ' ' ,a.bir_date,c.description as sex,a.up_date,a1.description as curr_upid ' ' ,a2.description as orig_upid,a.dir_num,a.dir_num2 ' ' ,d.description as office, a.addr3,a.addr1,a.email,a.tel_h,a.tel_o,a.m_phone,a.fax ' ' from agent a ' ' left join code_degree b on a.degree = b.id ' ' left join code_sex c on a.sex = c.id ' ' left join branch d on a.office = d.id ' ' left join agent a1 on a.curr_upid = a1.id ' ' left join agent a2 on a.orig_upid = a2.id ' ' where a.id = ''' Trim(sid) ''''; date_temp := cmd.ExecuteQuery; Result := StripMetadata(TDBXJSONTools.TableToJSON(date_temp, 1, true)); finally cmd.Free; end; end;
再麻煩請各位大大指教,謝謝 小弟目前的資料庫為PostgreSQL 那中文的部份目前為簡體中文,謝謝 編輯記錄
pkz0718 重新編輯於 2013-08-13 14:46:10, 註解 無‧
|
pkz0718
一般會員 發表:4 回覆:7 積分:2 註冊:2013-08-13 發送簡訊給我 |
小弟另一種寫法為如下:
function TWebModule1.GetAgent2(const sid: string) :String; var cmd: TDBXCommand; date_temp : TDBXReader; obj,JSON : TJSONObject; i, cnt : Integer; begin obj := TJSONObject.Create; dbx4Conn := TDBXConnectionFactory.GetConnectionFactory.GetConnection( 'xxx', 'xxx', 'xxx'); if (Assigned(dbx4Conn)) then begin cmd := dbx4Conn.CreateCommand; end; try cnt := 0; cmd.Text := ' select a.id,a.description,b.description as degree,a.pid,a.certif,a.join_Date ' ' ,a.bir_date,c.description as sex,a.up_date,a1.description as curr_upid ' ' ,a2.description as orig_upid,a.dir_num,a.dir_num2 ' ' ,d.description as office, a.addr3,a.addr1,a.email,a.tel_h,a.tel_o,a.m_phone,a.fax ' ' from agent a ' ' left join code_degree b on a.degree = b.id ' ' left join code_sex c on a.sex = c.id ' ' left join branch d on a.office = d.id ' ' left join agent a1 on a.curr_upid = a1.id ' ' left join agent a2 on a.orig_upid = a2.id ' ' where a.id = ''' Trim(sid) ''''; date_temp := cmd.ExecuteQuery; while date_temp.Next do begin Obj := TJSONObject.create; for i := 0 to date_temp.ColumnCount - 1 do begin if not date_temp.Value[i].IsNull then begin Obj.AddPair(date_temp.ValueType[i].Name, date_temp.Value[i].AsString); end else begin Obj.AddPair(date_temp.ValueType[i].Name, ''); end; end; inc(cnt); end; date_temp.Free; except raise; end; Result := Obj.ToString; end; 不知哪個方法可以解決 中文轉json格式,謝謝
|
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
s 是一個 UnicodeString
[code delphi] result := ''; for i := 1 to Length(s) do begin c := Ord(s[i]); if c < 128 then result := result s[i] else result := result Format('\u%0:4.4x', [c]); end; [/code]
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/ |
pkz0718
一般會員 發表:4 回覆:7 積分:2 註冊:2013-08-13 發送簡訊給我 |
感謝,可以用了,謝謝。
===================引 用 sryang 文 章=================== s 是一個 UnicodeString [code delphi] result := ''; for i := 1 to Length(s) do begin c := Ord(s[i]); if c < 128 then result := result s[i] else result := result Format('\u%0:4.4x', [c]); end; [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |