上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
黃澤民
註冊時間: 2003-09-08 文章: 65 來自: 新竹
第 1 樓
|
發表於: 星期三 三月 31, 2010 7:56 am 文章主題: 這是Unicode的問題對嗎?不是說VFP可以【處理】?Unicode(不是顯示)! |
|
|
我想用Excel來處理些試算表,我曾經有看過Chris Lee 發表的訊息說
VFP可以處理Unicode的文字(不是顯示),那請問我附上的文件,
利用Excel來處理Unicode文字似乎有問題,請教各位先進,我是哪裡錯了嗎?
黃澤民 在 星期四 四月 08, 2010 1:03 pm 作了第 1 次修改 |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4214 來自: Taipei,Taiwan
第 2 樓
|
發表於: 星期三 三月 31, 2010 8:33 am 文章主題: |
|
|
可以處理 = 要自己想辦法處理. XD _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 3 樓
|
發表於: 星期三 三月 31, 2010 8:59 am 文章主題: |
|
|
syntech果然又回復原來的風格了。 |
|
回頂端 |
|
|
LiuRambo
註冊時間: 2007-11-27 文章: 481
第 4 樓
|
發表於: 星期四 四月 01, 2010 12:04 am 文章主題: |
|
|
unicode並不是萬能吧
會不會是EXCEL的字型去影響到? |
|
回頂端 |
|
|
黃澤民
註冊時間: 2003-09-08 文章: 65 來自: 新竹
第 5 樓
|
發表於: 星期四 四月 01, 2010 7:28 am 文章主題: |
|
|
我知道一定是UNICODE的問題,可是我還沒有找到方向
我還在努力,應該是STRCONV()這個FUNCTION可以克服
可能我對於 CodePage-950 UTF-8 Single-Byte Double-Byte Unicode
這幾個參數轉換還搞不懂,唉...努力中.... |
|
回頂端 |
|
|
garfield Site Admin
註冊時間: 2003-01-30 文章: 2158
第 6 樓
|
發表於: 星期四 四月 01, 2010 9:08 am 文章主題: |
|
|
你仔細去看所有提到 unicode 的討論, 你就會有一些領悟,
針對你提的案例而言,
只要加上一行 vfp9 的函數
SYS(3101,65001)
你就可以正常的工作了. _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4214 來自: Taipei,Taiwan
第 7 樓
|
發表於: 星期三 四月 07, 2010 4:16 pm 文章主題: |
|
|
SYS(3101,65001) 是讓com物件使用 code page 65001 (UTF- 8 ) 頁碼顯示資料.
如果你沒下這行就會以程式預設的code page顯示,
結果就是樓主那樣.
這樣大致可解決使用 "m$ forms 2.0 textbox"及"m$ forms 2.0 label" 物件以顯示 unicode 字串的問題.
也就是在vfp form中顯示unicode文字是可行的.
不過也還是得解決資料儲存及儲存後拿出來顯示的問題.
有的人是用下列方式作互換
代碼: |
REPLACE TABLE1.UNI_STR WITH STRCONV( F20_TEXTBOX.TEXT,13)
及
F20_TEXTBOX.TEXT = STRCONV( TABLE1.UNI_STR,14)
|
神作也是說利用中立的 binary 或是 UTF-8,等等格式儲存.
但是很明顯的,
你將無法使用
這樣的方式搜尋資料.
因為你要變成
代碼: |
SEEK STRING_TRANSLATION('紅海集團')
|
才可以.
這個工程實在太大.
其他還是乖乖參閱神作:
http://www.west-wind.com/presentations/foxunicode/foxunicode.asp#UnicodeWithSPT
Using Unicode in Visual FoxPro Web and Desktop Applications
還有很長的路要走的.
早點放棄可能比較快. XD
順便再說一句,
CODEPAGE 65001 並非VFP所有版本所認可的CODEPAGE,
所以你無法使用 CPDBF,CPCONVERT,......等函式硬轉. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 8 樓
|
發表於: 星期三 四月 07, 2010 5:13 pm 文章主題: |
|
|
syntech 寫到: |
還有很長的路要走的.
早點放棄可能比較快.
|
放棄當程式設計師最快啦。 |
|
回頂端 |
|
|
黃澤民
註冊時間: 2003-09-08 文章: 65 來自: 新竹
第 9 樓
|
發表於: 星期三 四月 07, 2010 9:32 pm 文章主題: |
|
|
謝謝以上前輩的指導,大致上可以使用於OLE物件(EXCEL),於cell內顯示原本為unicode的文字
1.如果使用以下的語法...copy to myfile sdf...這個是OK的(存成UTF-8的檔案格式...文字檔)
2.但是使用以下的語法...copy to myfile xls...這樣就會有問題(還是會出現??號...xls的檔案格式)
以上的第2種方法,雖然可以使用程式的方法一行一行輸出(效率差了點),總算可以克服。
不過已經可以解決我大部分的問題。
雖然顯示於VFP視窗的問題還有待努力(使用forms2.0的textbox / label)似乎還是不足的。
儲存的問題也還好。總之 謝謝先進的指導,再次感謝了... |
|
回頂端 |
|
|
aizz
註冊時間: 2007-01-29 文章: 172
第 10 樓
|
發表於: 星期四 四月 08, 2010 8:40 am 文章主題: |
|
|
黃澤民 寫到: | 謝謝以上前輩的指導,大致上可以使用於OLE物件(EXCEL),於cell內顯示原本為unicode的文字
1.如果使用以下的語法...copy to myfile sdf...這個是OK的(存成UTF-8的檔案格式...文字檔)
2.但是使用以下的語法...copy to myfile xls...這樣就會有問題(還是會出現??號...xls的檔案格式)
以上的第2種方法,雖然可以使用程式的方法一行一行輸出(效率差了點),總算可以克服。
不過已經可以解決我大部分的問題。
雖然顯示於VFP視窗的問題還有待努力(使用forms2.0的textbox / label)似乎還是不足的。
儲存的問題也還好。總之 謝謝先進的指導,再次感謝了... |
雖然雞同鴨講, 問題的人與回答的人內容完全不搭ㄍㄚ --------
不過, 自己可以想辦法抓到老鼠的貓, 就是好貓
|
|
回頂端 |
|
|
黃澤民
註冊時間: 2003-09-08 文章: 65 來自: 新竹
第 11 樓
|
發表於: 星期四 四月 08, 2010 9:49 am 文章主題: |
|
|
會雞同鴨講嗎?我怎麼覺得我可以了解6樓跟7樓的說明,而且獲益良多,也已經解決目前我的問題(雖然還不能完全了解) |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4214 來自: Taipei,Taiwan
第 12 樓
|
發表於: 星期四 四月 08, 2010 10:35 am 文章主題: |
|
|
1,2 有差,
因為 EXCEL 內部已經是UTF-8 編碼,
用 COPY TO XLS直接產生XLS,EXCEL會以為已經經過轉換,
而 COPY TO SDF,則是把目前的"資料"直接輸出文字檔,EXCEL讀入時就會轉換一次,所以顯示正常.
之前我買過一個 FRX直接轉XLS的物件,就發生這種情況,
這家美國公司把未經過轉換的DBCS資料直接拋到XLS檔中,造成顯示都變成亂碼,
(為什麼知道?因為用ULTRAEDIT開16進位編輯模式出現正確的中文字. Orz )
用我破破的英文解釋給他們聽,好像也聽不懂.
只好封印起來.
當然用1樓的方法就比較慢,但是沒問題,顯示也會正常 (當然是執行過 SYS(3101,65001)之後)
我覺得用1樓的方法產生EXCEL 報表比較沒問題.
應該樓主原先就打算產生EXCEL 報表吧.
沒有雞同鴨講. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
黃澤民
註冊時間: 2003-09-08 文章: 65 來自: 新竹
第 13 樓
|
發表於: 星期四 四月 08, 2010 12:57 pm 文章主題: |
|
|
謝謝syntech的說明
原來其實我的用法是...由使用VFP寫程式...連接ACCESS資料庫...取出ACCESS的TABLE...SELECT成為CURSOR
處理CURSOR...產生EXCEL的列印報表...完工。當然如果能夠直接輸出成為XLS最理想
但是不能直接輸出成為XLS,那麼退而求其次...使用OLE的方式產生XLS的檔案格式也行...就是慢了些。 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1645
第 14 樓
|
發表於: 星期五 四月 09, 2010 11:54 am 文章主題: |
|
|
直接輸出可能是不很理想的做法
日期欄位或者那些純數字的文字欄位,比如電話,公司統編等等
直接輸出成 XLS , 可能都會變成數值
萬一前面有「0」,比如電話號碼【075541234】,
直接輸出到XLS,第一個0就會不見啦 |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4214 來自: Taipei,Taiwan
第 15 樓
|
發表於: 星期五 四月 09, 2010 3:22 pm 文章主題: |
|
|
加上一些特殊的前綴字就可以了. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
|