VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

XML轉換中文欄位問題

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
SIMONSTONE



註冊時間: 2003-11-25
文章: 30


第 1 樓

發表發表於: 星期二 十一月 25, 2003 12:20 am    文章主題: XML轉換中文欄位問題 引言回覆

作業系統:WIN 2000 SERVER
開發工具:VFP 8.0 SP1 , SOAP 3.0
問題描述:我是VFP 8.0之程式新手,聽說XML可以解決WEB SERVICE 問題,故寫個程式要來測試XML之讀寫時,發生英文欄位名稱正常,而中文欄位會顯示XML之錯誤,煩請各位高手幫忙解答
程式如下:
***********************************************************************************************
LOCAL loXMLAdapter AS XMLADAPTER
LOCAL lcXMLCustomers AS STRING
LOCAL lxXML AS STRING

loXMLAdapter = CREATEOBJECT("XMLAdapter")

OPEN DATABASE "D:\PROGRAM FILES\MICROSOFT VISUAL FOXPRO 8\SAMPLES\Northwind\Northwind.dbc"

USE customers

loXMLAdapter.ADDTABLESCHEMA("Customers")
loXMLAdapter.UTF8ENCODED = .T.
loXMLAdapter.ISDIFFGRAM = .T.
loXMLAdapter.PreserveWhiteSpace =.T.

loXMLAdapter.TOXML("lxXML")

STRTOFILE(lxXML,'D:\AP_VFP8\XML.TXT')

CLOSE TABLES ALL

LoXMLAdapter.LOADXML(LxXML)

lcAlias = JUSTSTEM(LoXMLAdapter.TABLES.ITEM(1).ALIAS)

LoXMLAdapter.TABLES.ITEM(1).TOCURSOR()
*
SELECT (lcAlias )
BROWSE
*
CLOSE TABLES ALL
*
RETURN
***********************************************************************************************
回頂端
檢視會員個人資料 發送私人訊息
elleryq



註冊時間: 2007-06-21
文章: 768


第 2 樓

發表發表於: 星期二 十一月 25, 2003 9:19 am    文章主題: 引言回覆

我猜想應該是編碼問題~

XML 對中文的編碼要求較嚴格
VFP 預設應為 UTF-8, 也就是慣稱的 Unicode
而你資料的編碼可能是 big5
因此而發生錯誤~
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
SIMONSTONE



註冊時間: 2003-11-25
文章: 30


第 3 樓

發表發表於: 星期二 十一月 25, 2003 10:09 pm    文章主題: 引言回覆

elleryq 大大 !! THANK U

已試過所有 XMLADAPTER之相關PROPERTY,還是無解,真是頭痛
有法可解嗎?
回頂端
檢視會員個人資料 發送私人訊息
elleryq



註冊時間: 2007-06-21
文章: 768


第 4 樓

發表發表於: 星期三 十一月 26, 2003 11:38 am    文章主題: 引言回覆

不要使用 utf-8
把編碼都改為 big5 試試
另外欄位名稱最好不要用中文~
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
SIMONSTONE



註冊時間: 2003-11-25
文章: 30


第 5 樓

發表發表於: 星期三 十一月 26, 2003 8:50 pm    文章主題: 引言回覆

elleryq 大大 !! THANK U 不厭其煩陪我

1.測試 utf-8 ,Problem still exist.
2.code page 950表示編碼都改為 big5,Problem still exist.
3.欄位名稱是繼承上一位前輩所留,故中文是一定要用的.
4.請問還有辦法嗎?
愈來愈急.....,工作快不保了~~~~~~~~........sos
回頂端
檢視會員個人資料 發送私人訊息
elleryq



註冊時間: 2007-06-21
文章: 768


第 6 樓

發表發表於: 星期四 十一月 27, 2003 9:19 am    文章主題: 引言回覆

你有匯出來以後的 xml 檔案嗎??
可否上傳上來看看??
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
SIMONSTONE



註冊時間: 2003-11-25
文章: 30


第 7 樓

發表發表於: 星期四 十一月 27, 2003 10:10 am    文章主題: 引言回覆

TAHNK U
1. 測試檔名:XML.TXT
2. 其中有亂碼者其實是 客戶編號 的欄位所產生之資料.
回頂端
檢視會員個人資料 發送私人訊息
elleryq



註冊時間: 2007-06-21
文章: 768


第 8 樓

發表發表於: 星期五 十一月 28, 2003 12:22 am    文章主題: 引言回覆

看過了,有幾個想法,但是苦於自己時間也不多,所以也沒去嘗試
1.自己產生 schema, 再 export; 匯入時,再給定 schema,匯入;這樣應可避免欄位名稱為中文問題.這部分可以看一下 Help.
2.改用 cursortoxml(), xmltocursor() 函數來作.這個我有小試過,是可以使用的.
cursortoxml("table1", "table1.xml", 1, 512+16, 0, "1")
xmltocursor( "table1.xml", "table1", 512+16 )
注意這邊, 512 表示第二個參數是輸出到檔案, 16 則是表示使用 cursor 的編碼來輸出.至於使用 cursortoxml() 輸出的 xml 是否可以被 xmladapter 使用,我認為應該是可以的,只是需要編碼的轉換.格式方面我大致看過,應該是可以的.

使用 xmladapter 看來是無法去改變輸出 xml 的 encoding,只能擇定 unicode=.t. 或 .f. ;若指定為 .f., vfp 又會將xml 的 encoding 給定為 "Windows 1252",而無法顯示中文.
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
elleryq



註冊時間: 2007-06-21
文章: 768


第 9 樓

發表發表於: 星期五 十一月 28, 2003 9:32 am    文章主題: 引言回覆

本來又有想到去改變 table 的 codepage 為 utf-8
但是發現缺乏相關指令
只好作罷~
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
SIMONSTONE



註冊時間: 2003-11-25
文章: 30


第 10 樓

發表發表於: 星期一 十二月 01, 2003 5:15 pm    文章主題: 引言回覆

elleryq 大大 !! THANK U 一路陪我

1.看來 xmladapter 是無法使用中文欄位名稱,已再試過所有可能方法,但都無法成功,只能說 I quit (可能繁體中文版就不會有此問題).
2.改成英文欄位名稱後,一路順暢.
3.ENDING.........後會有期,如有互相切磋機會,post to me.
回頂端
檢視會員個人資料 發送私人訊息
elleryq



註冊時間: 2007-06-21
文章: 768


第 11 樓

發表發表於: 星期二 十二月 02, 2003 9:30 am    文章主題: 引言回覆

我個人認為繁體中文版還是會有一樣的問題~~
相信我~~
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 12 樓

發表發表於: 星期三 十二月 03, 2003 12:01 pm    文章主題: 引言回覆

不是只有XML而已,很多方面最好是英文.

一開始我早就已確認是中文方面有問題了.

可惜我不會XML.

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
ezpos



註冊時間: 2011-04-20
文章: 323


第 13 樓

發表發表於: 星期三 四月 27, 2016 10:11 pm    文章主題: 引言回覆

這是正確的

cursortoxml("table1", "table1.xml", 1, 512+16, 0, "1")
xmltocursor( "table1.xml", "table1", 512+16 )

_________________
ezPos收銀機 簡單好用低成本 http://www.ezpos.info
全新美觀的POS收銀機.POS軟硬體耗材.
軟體客制化.網站規劃....能賺錢的都可以找我

http://www.twelife.com 台灣生活網
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 14 樓

發表發表於: 星期四 四月 28, 2016 1:32 pm    文章主題: 引言回覆

可能在 2007年發布的 vfp 9 有解.
新的 cursoradapter 印象中可以支援 utf8及xml.
不過應該還是會動很多手腳.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作