線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1566
推到 Plurk!
推到 Facebook!

關於Delphi 7 與及PostgreSQL 存取中文字的問題...

尚未結案
yahahaha
一般會員


發表:1
回覆:7
積分:1
註冊:2005-04-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-18 03:22:20 IP:203.59.xxx.xxx 未訂閱
請問各位大大在存取中文字到PostgreSQL 之前是否要設定一下Database Environment 好讓DB 可以存取中文字形呢? 可否教教小弟? 另在Delphi 那兒我是否也要設定一下才可以輸入中文字到delphi application? 我在建立LableEditBox 時在Caption 中輸入中文也是出了"???"而不是中文字的 p.s 我的PostgreSQL 是安裝在Windows XP English version 的...
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-18 06:41:42 IP:202.39.xxx.xxx 未訂閱
試試如下的步驟: 1.在 create database 時, Encoding 選項設為 EUC_TW 例(紅色部份):
CREATE DATABASE database1
  WITH OWNER = postgres
       ENCODING = 'EUC_TW'
       TABLESPACE = pg_default;
2.編輯 postgresl.conf 檔, 找到 client_encoding = sql_ascii 這一行 將其改成 client_encoding = Big5 3.重新啟動 postgresql service -- 分擔可以輕省, 分享帶來喜樂!
yahahaha
一般會員


發表:1
回覆:7
積分:1
註冊:2005-04-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-18 07:08:21 IP:203.59.xxx.xxx 未訂閱
謝謝你先... 不過我連在Delphi 打中文也不行呢...有沒有什麼方法解決呢?
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-18 07:31:47 IP:202.39.xxx.xxx 未訂閱
LableEditBox 的 Font.ChartSet 屬性設為 CHINESEBIG5_CHARSET 試試    -- 分擔可以輕省, 分享帶來喜樂!
yahahaha
一般會員


發表:1
回覆:7
積分:1
註冊:2005-04-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-18 22:36:17 IP:203.59.xxx.xxx 未訂閱
還是不行... 就算set 了Font.ChartSet 屬性為 CHINESEBIG5_CHARSET Caption 中打中文只會出現??? 而run application 中打中文 字到Text Box 也是這樣...
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-04-19 14:04:16 IP:202.39.xxx.xxx 未訂閱
run app 這一台也是 Windows XP English 版的? 其它地方可以輸入中文嗎? 不好意思, 英文版的 OS 要怎麼輸入中文, 小弟沒有經驗! -- hagar.
yahahaha
一般會員


發表:1
回覆:7
積分:1
註冊:2005-04-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-04-19 17:04:53 IP:203.59.xxx.xxx 未訂閱
也是英文XP 的 打中文字方面應該冇問題(word, notepad, IE...)...只不過不知道為何在行Delphi 打中文字會出"???"的...
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-04-19 21:04:24 IP:202.39.xxx.xxx 未訂閱
delphi 內不要連 postgresql 的話 也不能輸入中文嗎? -- hagar.
yahahaha
一般會員


發表:1
回覆:7
積分:1
註冊:2005-04-18

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-04-20 04:40:12 IP:203.59.xxx.xxx 未訂閱
在沒有連到PostgreSQL 的情況下也是不行
yahahaha
一般會員


發表:1
回覆:7
積分:1
註冊:2005-04-18

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-04-30 01:08:17 IP:203.59.xxx.xxx 未訂閱
不好意思...把這個問題推回來...    我現在使用了中文Windows...從Delphi Application 裡輸入中文到PostgreSQL 沒問題了...可是在Retrieve Data 回Delphi Application 出了問題...當我再用ADO Connection 去取回資料的時候...中文字的變了"???" 在 >
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-05-02 15:24:09 IP:202.39.xxx.xxx 未訂閱
1.database 的 Encoding 選項有設為 EUC_TW 嗎? 2.client_encoding 有設為 Big5 嗎? (參見第一篇回覆) -- hagar.
yahahaha
一般會員


發表:1
回覆:7
積分:1
註冊:2005-04-18

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-05-02 17:51:49 IP:203.59.xxx.xxx 未訂閱
已設定了... 可是還是不行... 現在又有一個奇怪的問題出現 在我輸入一個中文的data 到Text Box...之後行Querry... 會出問題 例如: update test set aaa = :aaa bbb = :bbb 如果我:aaa 的value 是中文的話... 它會出一句error message 說在bbb = :bbb 之前的數據不能取讀....
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-05-02 18:07:37 IP:202.39.xxx.xxx 未訂閱
您是用什麼來連線的? psqlODBC 嗎?是的話是幾版的? 小弟是用 psqlODBC7.3.2 版的 另外那個 Update test 的條件式中的中文字是什麼字? 有些中文字的 byte 碼是 postgresql 裡的特殊字元像是 \ 符號 是要經過處理的 -- hagar.
yahahaha
一般會員


發表:1
回覆:7
積分:1
註冊:2005-04-18

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-05-03 13:52:54 IP:203.59.xxx.xxx 未訂閱
我的ODBC driver 應該是8.00.0101 在有些範例中見到要在database 行一個sql: \encoding Big5 之後打什麼中文字到database 做insert 都沒問題... 可是在delphi 用這個sql 就不行... 說什麼不可以用"\"似的...
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-05-03 15:45:15 IP:202.39.xxx.xxx 未訂閱
1.不知您那邊為何不行?小弟這邊是這樣設定的 2.\encoding Big5 這行確定是 SQL 語句嗎? 小弟在 pgAdmin III 裡是無法執行的說 3.試試用如下的方式解決字串裡含有 \ 字元的問題
begin
  sTmp := '中文字';
  ADOQuery1.SQL.Text := 'update test set aaa = :aaa';
  ADOQuery1.Parameters.ParamValues['aaa'] := StringReplace(sTmp, '\', '\\', [rfReplaceAll]);
  ADOQuery1.ExecSQL;
end;
-- hagar.
系統時間:2024-05-21 6:02:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!