• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            C++ Programmer's Cookbook

            {C++ 基礎(chǔ)} {C++ 高級(jí)} {C#界面,C++核心算法} {設(shè)計(jì)模式} {C#基礎(chǔ)}

            中文xml FQA

            Chinese XML FAQ 
            這份 "常見(jiàn)問(wèn)題及解答" 是提供使用 XML 來(lái)處理中文文件的相關(guān)資訊。 關(guān)於處理 XML 或 SGML 
            英文文件的 FAQ 請(qǐng)參考下列網(wǎng)頁(yè): 

            John Lamp and Dave Megginson's comp.text.sgml FAQ at 
            http://lamp.man.deakin.edu.au/sgml/sgmlfaq.txt; 
            Peter Flynn's XML FAQ at http://www.ucc.ie/xml/ (this is also available in Japanese, 
            Korean and Spanish: does anyone want to translate it into Chinese?). 
            --------------------------------------------------------------------------------

            1. 什麼是 XML ? 
            XML 「可擴(kuò)展標(biāo)示語(yǔ)言」(eXtensible Markup Language) 是用於標(biāo)示具有結(jié)構(gòu)性資訊的電子文件
            的標(biāo)示語(yǔ)言。 XML 是根據(jù)一個(gè)國(guó)際標(biāo)準(zhǔn) -- Standard Generalized Markup Language (SGML) 
            -- International Organization for Standardization (ISO) ISO 8879:1986 所定而成的. 
            XML 的格式類(lèi)似 HTML, 但是您可以使用自行定義 的標(biāo)及文件結(jié)構(gòu). 也可以由資料庫(kù)中取得資料,
            再用 XML 進(jìn)行 串列化 (serializing) 的工作。 
            --------------------------------------------------------------------------------

            2. 誰(shuí)在負(fù)責(zé)發(fā)展 XML ? 
            ISO SGML 最初是由 IBM 公司所研發(fā)的, 但也接受了許多公司 的建議。 XML 是由 "全球資訊網(wǎng)發(fā)
            展協(xié)會(huì)" (World Wide Web Consortium, W3C) 所發(fā)展的; WWW 的發(fā)明人 Tim Berners-Lee 先生是
             W3C 的主持人。 陽(yáng)公司 (Sun Microsystems) 的主資訊結(jié)構(gòu)師 (chief Information Architect)
              Jon Bosak 先生是 XML 計(jì)劃主持人。 XML 的規(guī)格是由網(wǎng)景公司 (Netscape), 微軟公司 (Microsoft)
               的代表及 一個(gè)稱(chēng)為 Text Encoding Initiative (TEI) 的大型學(xué)術(shù) 研究計(jì)劃所共同起草定。
                W3C Special Interest Group (W3C XML SIG) 的成員包含:超過(guò)一百個(gè)公司及受邀 的專(zhuān)家。 
            --------------------------------------------------------------------------------

            3. 那些公司支持或使用 XML ? 
            Microsoft, Netscape, Sun, IBM, Corel, Adobe, Oracle, RealAudio... 遍及各大電腦公司。 
            --------------------------------------------------------------------------------

            4. 我是否已經(jīng)在使用 XML 了 ? 
            大多數(shù)的 XML 的應(yīng)用是隱含在系統(tǒng)內(nèi)部的; 已有許多的應(yīng)用使用 XML 技術(shù)來(lái)訂定其專(zhuān)用的標(biāo)
            示語(yǔ)言 (specialist markup language). 例如: 

            RealAudio 公司新版的 RealPlayer G2 采用 W3C 定的 
            SMIL (Synchronized Media Interchange Language) 規(guī)格; 
            Netscape 公司的 "What's Related" 功能采用 W3C 定的 RDF (Resource Description Framework) 
            規(guī)格來(lái)運(yùn)作; 
            Microsoft 公司 Internet Explorer 軟體中的 "頻道" (Channels) 功能中所使用
             CDF (Channel Definition Format) 格式. 
            --------------------------------------------------------------------------------

            5. XML 中可以處理中文資訊嗎 ? 
            可以的. 所有符合 XML 規(guī)格的軟體工具一定都支援 ISO 10646 字集. ISO 10646 是一組龐大的字集, 
            而且是一項(xiàng) ISO 標(biāo)準(zhǔn)。 其中包含了 Big5 中文碼及 GB2312 中文碼中所有的字. 

            但是 XML 的應(yīng)用才剛起步, 所以目前大多數(shù)的 XML 軟體工具都尚未針對(duì)中文 資料進(jìn)行測(cè)試。 (1998 年 12 月) 
            --------------------------------------------------------------------------------

            6. 可以直接使用中文的元素名稱(chēng) (Chinese element names) 嗎 ? 
            可以的. 所有符合 XML 規(guī)格的軟體工具一定都可以直接使用 中文的元素名稱(chēng) (Han ideographs for element names). 

            但是請(qǐng)注意上述所提的字集是指 ISO 10646 中的 "統(tǒng)一漢字字集" (unified Han characters)。 
            例如: 某些字在 GB2312 與 Big5 碼中 有不同的字形 (glyph, form or picture)。 但在 
            ISO 10646 中卻將 這些字的繁體字及簡(jiǎn)體字統(tǒng)一 (unified) 為同一個(gè)字形。 : 正確的 XML 軟
            體工具應(yīng)確保將 Big5 或 GB2312 碼的資料轉(zhuǎn)換為 ISO 10646 時(shí),其中的元素型別名稱(chēng) 
            (element type names) 及屬性 (attributes) 等等的 XML 名稱(chēng) (names) 是 "正規(guī)化" 
            (normalized) 為 "統(tǒng)一形式" (unified form) 而不是 "相容形式" (compatability form)。 

            對(duì)於 Big5 碼還有一個(gè)特殊的問(wèn)題要考慮。 請(qǐng)參閱問(wèn)題 18. 
            --------------------------------------------------------------------------------

            7. XML 中可以處理 Big5 碼的中文資訊嗎 ? 
            可能可以. 一個(gè)符合 XML 規(guī)格的軟體工具一定都支援 UTF-8 及 UTF-16 碼 (Unicode). 但是任
            何的字碼集 (character set) 都有可能用來(lái)編寫(xiě) XML 資料。 撰寫(xiě)剖析器 (parser) 的設(shè)計(jì)決
            定其 XML 軟體工具支援那些字碼集。 

            在 XML 系統(tǒng)的處理圍之外,文件內(nèi)容是使用 Big5 碼。 
            在 XML 的系統(tǒng)中, 文件是以 ISO 10646 字碼.  : 在 Java 環(huán)境中也是使用 ISO 10646 字碼。 
            這個(gè)字碼也 就是 Unicode。 
            您必須在每一個(gè)使用 Big5 碼的 XML 文件 (parseable entity) 檔中 一開(kāi)始的部份加上下列的
            檔頭 (header):
               <?xml version="1.0" encoding="Big5"?> 
            為何一定要在 XML 文件中加上正確的字碼設(shè)定呢 ? 假如您的 XML 文件中沒(méi)有標(biāo)明正確的字碼, 
            XML 系統(tǒng)會(huì)拒絕處理這份 文件。 XML 的系統(tǒng)不再使用 HTML 系統(tǒng)的字碼猜測(cè) (guessing) 的處
             理方式,而采用明確標(biāo)示 (explicit markup) 的方式。 

            對(duì)於 Big5 碼還有一個(gè)特殊的問(wèn)題要考慮。 請(qǐng)參閱問(wèn)題 18. 
            --------------------------------------------------------------------------------

            8. XML 中可以處理 GB2312 碼的中文資訊嗎 ? 
            可能可以. 一個(gè)符合 XML 規(guī)格的軟體工具一定都支援 UTF-8 及 UTF-16 碼 (Unicode). 但是任
            何的字碼集 (character set) 都有可能用來(lái)編寫(xiě) XML 資料。 撰寫(xiě)剖析器 (parser) 的設(shè)計(jì)決
            定其 XML 軟體工具支援那些字碼集。 

            在 XML 系統(tǒng)的處理圍之外,文件內(nèi)容是使用 GB2312 碼。 或是以 EUC 編碼 (EUC encoding) 
            的 GB2312 及 ASCII 碼, 也稱(chēng)為 cn-euc 碼。 
            在 XML 的系統(tǒng)中, 文件是以 ISO 10646 字碼.  : 在 Java 環(huán)境中也是使用 ISO 10646 字碼。 
            這個(gè)字碼也 就是 Unicode。 
            您必須在每一個(gè)使用 GB2312 碼的 XML 文件 (parseable entity) 檔中 一開(kāi)始的部份加上下列
            的檔頭 (header):
                <?xml version="1.0" encoding="gb2312"?> 
            --------------------------------------------------------------------------------

            9. 如何知道某個(gè) XML 軟體工具支援那些字碼 ? 
            在臺(tái)灣中央研究院的 "Chinese XML Now!" 計(jì)劃提供了一些 相關(guān)資訊。此外廠商 也可以使用 
            中文處理能力標(biāo) (Chinese Numberplate logo) 來(lái)標(biāo)示. 無(wú)論其工具 處理的能力如何,您都可以
            先將 XML 文件轉(zhuǎn)碼為 UTF-8 碼,則任何一個(gè) XML 軟體工具就都可以使用了。
              
            --------------------------------------------------------------------------------

            10. 當(dāng)我使用 Big5 碼,但是我要使用的字并不在標(biāo)準(zhǔn)字集中時(shí),該如何解決呢 ? 
            可以使用 ISO 10646 統(tǒng)一字集 (universal character set) 中的任何的字。 假如是 Big5 或 
            GB2312 碼中的缺字,您就可以用 "數(shù)字字元參引" (numeric character reference) 的方式表示。 
            例如:
                媼
            中的 "5ABC" 是 ISO 10646 字集的順序,并以十六進(jìn)位的方式表示。 您可以用 Windows NT 系統(tǒng)
            中的 "Character Map" 工具看到 ISO 10646 字集中的所有字形,也可以選用不同的字型。 

            假如您使用 ISO 10646 字集中的變體 (variant),您可以定義一個(gè) 元素型別 (element type) 及
            屬性 (attribute),就可以達(dá)到正確 顯示的目的了。例如您可以借用 HTML 中的 SPAN 元素型別 
            (element type), 然後使用樣式表 (stylesheet),也就是層級(jí)式樣式表 (Cascading Stylesheets: CSS) 
            就可以依照您的需求來(lái)切換字型了。 

            假如這個(gè)字不在 ISO 10646 的字集中,您就需要用造字區(qū) (private-use character area) 了. 
            這與過(guò)去的做法并沒(méi)有任何改進(jìn) ! 希望將來(lái)有更好的系統(tǒng)可以引進(jìn)到 XML 及 ISO 10646 中。 
            --------------------------------------------------------------------------------

            11. 目前免費(fèi)又好用的 XML 軟體工具中, 那些可以處理中文資料呢 ? 
            XML 中文軟體工具中,目前 (1998/12) 最好的可能是 Internet Explorer 5.0 beta 版。 最好
            的 XML 剖析器 (parser) 可能是 IBM 公司的 XML Parser for Java。 最好的 XML/SGML 剖析器
             (parser) 可能是 James Clark 的 SP software (C++)。 還有個(gè)使用 perl 語(yǔ)言撰寫(xiě)的 XML 剖
             析器正在進(jìn)行中。 
            --------------------------------------------------------------------------------

            12. 請(qǐng)談?wù)勱P(guān)於 Web 伺服器 (server) 的轉(zhuǎn)碼 (Transcode) 問(wèn)題 ? 
            有一些日本的 Web 伺服器 (server), 代理服務(wù) (proxy) 或?yàn)g覽器 (browser) 可以自動(dòng)進(jìn)行日
            文的Shift-JIS 及 EUC-J 碼之間的轉(zhuǎn)換。同樣也有其他語(yǔ)言 也有自動(dòng)轉(zhuǎn)換,例如俄文。但目前
            我們還不知道有任何 Web 伺服器可自動(dòng)進(jìn)行 Big5 及 GB2312 碼之間的繁體簡(jiǎn)體轉(zhuǎn)換。 

            但問(wèn)題是無(wú)法完整的將 Big5 碼完整的轉(zhuǎn)換為 GB2312 碼,有些字 因?yàn)樵?nbsp;GB2312 碼中不存在,
            所以轉(zhuǎn)碼後這些字就會(huì)產(chǎn)生錯(cuò)誤。 所以新一代的瀏覽器應(yīng)該要使用 可認(rèn)知 XML 的不掉字轉(zhuǎn)碼器
             (XML-aware lossless transcoders) - 這個(gè)轉(zhuǎn)碼器會(huì)將 GB2312 碼中沒(méi)有的 字以數(shù)字字元參引 
             (Numeric Character Reference, NCR) 的方式表示。 但因?yàn)?nbsp;XML 規(guī)格太新了,目前尚未有瀏
             覽器支援此項(xiàng)功能。 

            要避免轉(zhuǎn)碼 (transcoding),您可以將文件的 MIME 類(lèi)別設(shè)定為 application/xml。這樣可能可
            以避免文件被轉(zhuǎn)碼了。 假如您使用 Apache Web 伺服器,您可以做如下的設(shè)定:
              AddType application/xml XML xml

              ForceType application/xml

              DefaultType application/xml 

            但是對(duì)於 HTML 資料,那些常用的瀏覽器 (Web browser) 使用了各種 的技巧來(lái)推測(cè)網(wǎng)頁(yè)是使用
            那一種字集編碼 (character set encoding)。 這種情形可能會(huì)一直持續(xù)存在,甚至采用 
            HTML-in-XML (也稱(chēng)為 "Voyager") 技術(shù)時(shí) 也會(huì)發(fā)生。 所以使用 application/xml 可以避免代理
            服務(wù) (proxy) 進(jìn)行 轉(zhuǎn)碼,但是接受資料的這一端還是可能會(huì)隨意 (lossy) 使用內(nèi)建的轉(zhuǎn)碼 機(jī)制。
            (請(qǐng)參閱問(wèn)題 19) 
            --------------------------------------------------------------------------------

            13. 萬(wàn)一我的 Web 伺服器送出錯(cuò)誤的字集資訊,怎麼辦呢 ? 
            大多數(shù)的 Web 伺服器并沒(méi)有在 HTTP/MIME 標(biāo)頭 (header) 中 送出正確的字集資訊。實(shí)際狀況是
            有許多的 Web 伺服器并無(wú)法設(shè)定字集。 

            下列是一些原則: 

            將來(lái) Web 伺服器會(huì)從 XML 文件中檢視其中的字集標(biāo)頭 (encoding header)。:但是目前還不是如此,
            因?yàn)?nbsp;XML 太新了, 
            假如您的網(wǎng)站只提供一種字集的文件,請(qǐng)將您的 Web 伺服器 設(shè)定為內(nèi)定 (default) 送出這種字集資訊。 
            假如您的 Web 伺服器支援 HTTP 1.1 協(xié)定中的內(nèi)容溝通 (content negotiation),例如: Apache。 
            而且您的文件有不同 語(yǔ)言的版本,伺服器端可以根據(jù)語(yǔ)言來(lái)選擇適當(dāng)語(yǔ)言版本的文件送出, 例如:
            使用 file.xml.en 及 file.xml.cn) 等等的 檔名,或是 
            每個(gè)檔案使用不同的目錄,并使用 .htaccess 控制檔來(lái) 進(jìn)行語(yǔ)言的設(shè)定。 (對(duì)於 Apache 伺服器,
            系統(tǒng)中要設(shè)定允許 "AllowOverride FileInfo" 的權(quán)限。請(qǐng)繼續(xù)參考下一個(gè)問(wèn)題。 
            --------------------------------------------------------------------------------

            14. 如何針對(duì)使用 Apache 伺服器者,使用 .htaccess 設(shè)定送出 正確的 HTTP/MIME 標(biāo)頭 (header) ? 
            (未寫(xiě)完) 
            對(duì)於 Apache 伺服器,系統(tǒng)中要設(shè)定允許 "AllowOverride FileInfo" 的權(quán)限。在任何的資料目錄,可
            以使用名為 .htaccess 的檔案來(lái)控制。 [:在 MIME 的名詞中, "encoding" 代表 "資料壓縮"
             (compression);在 XML 的編碼標(biāo)頭 (encoding header) 中, "encoding" 代表 "采用的字集"。] 
             可參考下列設(shè)定: 

                 DefaultLanguage zh
               AddType application/xml XML xml 
            為何一定要有正確的語(yǔ)言設(shè)定呢 ? 因?yàn)槿绱丝梢詭椭臋z索系統(tǒng)。 

            為何要將 XML 文件以 MIME 類(lèi)別設(shè)定為 application/xml 送出, 而不以 text/xml 送出呢 ? 因?yàn)?
            如此之下,文件就不會(huì)被轉(zhuǎn)碼。 Big5 到 GB2312 的轉(zhuǎn)碼會(huì)導(dǎo)致 有些字會(huì)不見(jiàn)。(請(qǐng)參考問(wèn)題 12)
            --------------------------------------------------------------------------------


            15. 什麼是 xml:lang 這個(gè)標(biāo)準(zhǔn)屬性的用途呢 ? 
            每個(gè) XML 元素 (element) 都可以有個(gè) xml:lang 屬性, 來(lái)設(shè)定您的文件使用何種語(yǔ)言。這個(gè)屬性可
            以協(xié)助全文檢索系統(tǒng)及排版系統(tǒng)。 請(qǐng)將這個(gè)屬性加在您的中文 XML 文件的最前頭。 可以針對(duì)中文的
            設(shè)定值如下: 

            xml:lang="zh" 表示中文資料; 
            xml:lang="zh-TW" 表示臺(tái)灣使用的中文 (繁體字); 
            xml:lang="zh-HK" 表示香港使用的中文 (可能是繁體字); 
            xml:lang="zh-CN" 表示中國(guó)大陸使用的中文 (簡(jiǎn)體字); 
            xml:lang="zh-SG" 表示新加坡使用的中文 (簡(jiǎn)體字); 
            這個(gè)屬性看似簡(jiǎn)單無(wú)奇,但是在您的文件中正確的標(biāo)示使用何種語(yǔ)言 卻會(huì)影響深遠(yuǎn)。如此這般,一個(gè)
            中文 Web 搜尋系統(tǒng) (Web-Robot) 就可以 正確無(wú)誤的將您的文件加入其系統(tǒng)中,而西方語(yǔ)言的 Web 搜
            尋系統(tǒng)就可 以得知這些文件可能不該加入其系統(tǒng)中,或是可以啟動(dòng)自動(dòng)的翻譯系統(tǒng)。 因?yàn)樵诓煌牡?
            區(qū)所使用的中文詞有一部份不一樣,所以語(yǔ)言屬性 也可以協(xié)助自動(dòng)翻譯及搜尋系統(tǒng)。 
            --------------------------------------------------------------------------------

            15a. 在一個(gè)文件內(nèi)可以混合使用不同的中文字集嗎 ? 
            (1998-12-15) 

            可以的。文件內(nèi)的每一個(gè) XML 元素 (element) 都可以使用 "xml:lang" 屬性來(lái)設(shè)定這一個(gè)元素是使用
            何種語(yǔ)言。此處不是指字集編碼 (Big5 或 GB2312), 而是何種語(yǔ)言。例如: 

                    <p xml:lang="zh-TW">...</p>

            表示這個(gè)元素 (element) 是使用臺(tái)灣的中文。 
                    <p xml:lang="zh-HK">...</p>

            表示這個(gè)元素 (element) 是使用香港的中文。 
                    <p xml:lang="en-SG">...</p>

            表示這個(gè)元素 (element) 是使用新加坡的英文。 
                    <p xml:lang="zh-CN-YUH">...<z xml:lang="en">blah;</z>...</p>

            表示這個(gè)元素 (element) p 是使用中國(guó)大陸的廣東話(huà)中文。 ("YUH" 是在 SIL Enthnologue 中代表
            廣東話(huà)的代碼,請(qǐng)參考下列網(wǎng)頁(yè): http://www.sil.org/ethnologue/countries/Chin.html) 但是子
            元素 (subelement) z 是英文。(某些文字是使用拼音的方式表達(dá); 這些部份是用於方言,不懂得這
            種方言就無(wú)法理解其意義。)? 
            當(dāng)然,您也可以自訂屬性來(lái)達(dá)到您的需求: 

                    <p xml:lang="zh-HK-simplified" traditional="OK">...</p>

            表示這個(gè)元素內(nèi)的資料是使用簡(jiǎn)體字的香港中文。 但是也可以使用 traditional="OK" 屬性來(lái)表示可
            以使用 繁體字字形。 
            使用 XML,您可以用標(biāo)示 (markup) 來(lái)描述文件中所有的資訊。 接著根據(jù)標(biāo)示,您可以寫(xiě)個(gè)程式,或
            是樣示表 (stylesheet), 或是報(bào)表產(chǎn)生程式來(lái)完成您的需求。。 
            --------------------------------------------------------------------------------

              
            16. 據(jù)說(shuō) Unicode 不是一組好的中文字集 (character set) ? Chinese! 
            Unicode 定組織 (Unicode Consortium) 是許多的公司聯(lián)合決定定一個(gè)包含全世界所有文字 的巨大字集,
            其中也有亞洲的公司參與。例如:Fujitsu and Fuji Xerox 公司。 該組織取用 ISO 10646 字集然後加
            入其他的資訊:標(biāo)準(zhǔn)名稱(chēng)及 特性。 Unicode 包含 GB2312 中所有的字及(可能) Big5 碼中所有的字。 
            而且加入了許多其他語(yǔ)言的文字。(ISO 10646 有幾種編碼方式: UTF-8 是 8-bit 的,而 UTF-16 是 
            16-bit。 Unicode 是 UTF-16 的形式。 

            因此 Unicode 比 Big5 及 GB2312 碼好 - 因?yàn)?nbsp;Unicode 包含較多的字。 

            但是 ISO 10646 碼有下列問(wèn)題: 

            UTF-16 或 Unicode 是 16-bit 固定長(zhǎng)度的編碼,并沒(méi)有比 Big5 或 GB2312 碼提供更大的容納空間。
            而 8-bit 不定長(zhǎng) (variable-length) 的編碼,每個(gè)中文字使用 3 個(gè)位元組 (byte)。 這意味著使用 
            UTF-8 編碼的 XML 檔案會(huì)比使用 Big5 碼的檔案大上 50%。但是假如使用 ASCII 碼的標(biāo)示 (Markup),
            檔案就不會(huì)大這麼多了。 標(biāo)示大約會(huì)占文件的 50%??赡芤箼n案大小減少的方式就是采用 檔案壓縮了。 
            ISO 10646 碼中,字的順序與任何的中文碼并不同。無(wú)法使用一個(gè) 簡(jiǎn)單的演算法 (algorithm) 就可以
            將 Big5 或 GB2312 碼轉(zhuǎn)換為 ISO 10646。您得用一個(gè)轉(zhuǎn)換表來(lái)進(jìn)行轉(zhuǎn)碼。但另一方面,ISO 10646 碼的
            中文字序有利於排序 (sorting)。而且也去除了重字,因而 對(duì)於檢索 (searching) 也有幫助。(據(jù)說(shuō)
             GBK 字集包含 ISO 10646 碼中所有的字,而且保留與 GB2312 碼相同的字序。在某些情形下 可能是個(gè)
             好字集。) 
            這就是為何 XML 檔不一定要用 UTF-8 或 UTF-16 編碼的原因。 您可以使用 Big5 或 GB2312 碼。但是
            很少 XML 軟體工具支援 這些中文字碼。所以建議您,以長(zhǎng)遠(yuǎn)眼光來(lái)探討,最好是轉(zhuǎn)移到 UTF-8 或 UTF-16。 
            --------------------------------------------------------------------------------

            17. 為何某個(gè)軟體工具的文件說(shuō)明該軟體無(wú)法正確處理 Big5 碼文件, 但事實(shí)上卻可以用呢 ? 
            Big5 碼是一個(gè)以 "7-bit unsafe" "ASCII-family" 編碼的字集。 

            "ASCII-family" 編碼的字集 (ASCII, ISO646, ISO8859-*, UTF-8, EUC, Big5, GB2312) 中的 ASCII
             字部份 都在 ASCII 字集表中的位置上。(也就是 'A' 的字碼為 65 (0x41)。) 所有的 ASCII 字都
             小於 128 (0x80)。 
            一個(gè) "8-bit safe" 編碼的字集表示假如其中有一個(gè)位元組 (byte) 的值小於 128,那這個(gè)字一定是 
            ASCII 中的字。Shift-JIS 及 Big5 碼 都不是 8-bit unsafe,因?yàn)樵诙辔辉M (multiple-byte) 字
            碼的第二 個(gè)位元組可能是小於 128 (0x80)。使用"8-bit safe" 編碼的好處是可以與 一些只處理以 
            ASCII 做為標(biāo)示 (markup) 的軟體工具相容。 
            "7-bit safe" 編碼是:假如有小於 64 (0x40) 的位元組 (byte) 就表示這是 個(gè) ASCII 碼的字。
            Shift-JIS 及 Big5 碼不是 "8-bit safe" (因?yàn)?nbsp;字碼中的第二個(gè)位元組可能小於 128 (0x80)) 但這
            些字碼是 "7-bit safe" (因?yàn)樽执a中的第二個(gè)位元組一定大於 63 (0x3f))。"7-bit safe" 編碼 對(duì)於
            一些只將小於 64 (0x40) 的字認(rèn)定為分隔符號(hào) (&#eter) 的軟體工具是安全無(wú)慮的。在 XML 中,所有
            的 XML 分隔符號(hào) (delimiter) [<>&%"'] 的值都小於 64 (0x40)。 
            這意味著會(huì)有許多的 XML 軟體工具可以處理 Big5 碼的文件。但這純屬 意外,因?yàn)閲?yán)格來(lái)講,一個(gè)不
            認(rèn)得 XML 標(biāo)頭中的編碼屬性的 XML 系統(tǒng), 應(yīng)該產(chǎn)生錯(cuò)誤訊息。特別的是,通常這些系統(tǒng)可能無(wú)法處
            理數(shù)字字元參引 (numeric character reference) (請(qǐng)參閱問(wèn)題 10)。當(dāng)然這些系統(tǒng)雖然 不符合標(biāo)準(zhǔn),
            但還是有其用處的。 

            對(duì)於 Big5 碼還有一個(gè)特殊的問(wèn)題要考慮。 請(qǐng)參閱問(wèn)題 18. 
            --------------------------------------------------------------------------------

            18. 為何在處理有些 Big5 碼文件時(shí)會(huì)產(chǎn)生奇特的錯(cuò)誤呢 ? 
            在某些系統(tǒng)中,Big5 碼的第二個(gè) byte 會(huì)產(chǎn)生問(wèn)題。因?yàn)?nbsp;Big5 碼不是 "8-bit safe" (請(qǐng)參閱問(wèn)題 17)。 

            這個(gè)問(wèn)題只會(huì)在不將 Big5 碼文件轉(zhuǎn)為 "8-bit safe" 的內(nèi)部格式 (例如:Unicode,UTF-8 或 UTF-16) 
            的系統(tǒng)中發(fā)生。在這些系統(tǒng)中, Big5 碼的某些位元組 (byte) 會(huì)被解譯為錯(cuò)誤的字。 

            第一個(gè)狀況是您使用本地語(yǔ)言 (Native Language) 的標(biāo)示 (例如:您使用中文做為元素名稱(chēng) (element 
            names),屬性名稱(chēng) (attribute names),ID 屬性等等)。這個(gè)問(wèn)題無(wú)解。如果您一定要用這類(lèi)的軟體,
            您 就要在標(biāo)示中避免使用第二個(gè) byte 有問(wèn)題的 Big5 字。 

            第二個(gè)狀況是您在 CDATA 段落 (section) 中使用下列中文字,而且 緊接著 "]>" 這個(gè)字串。解決的方
            法是,將這個(gè) CDATA 段落分割為兩個(gè) CDATA 段落,然後在其間夾雜一個(gè)特別的字元。下列 Big5 中文字
            的第二個(gè) byte 都是 0x5D,也就是 ASCII 中的 "]" 字元。 

            也包因氓柵苗孫孫財(cái)
            崧淫設(shè)弼琶跑愍窟榜蒸稽
            霄瓢館縲擻魔

            焱菏酡
            螗螬瀧
            躕 

            警告:我們還在檢視這些字。 
            (:假如您不能看到上述的字,請(qǐng)參閱問(wèn)題 19) 
            --------------------------------------------------------------------------------

            19. 為何我不能在 HTML 瀏覽器 (browser) 中看到所有的字呢 ? 
            您不能看到所有的字,可能是: 

            您的瀏覽器 (browser) 無(wú)法依據(jù) HTML 4 或 XML 規(guī)則正確處理 數(shù)字字元參引
             (numeric character reference);或是 
            您沒(méi)有安裝或選擇正確的字型; 
            您的瀏覽器使用 "encoding" 設(shè)定來(lái)決定使用那一個(gè)字型,但在這個(gè) 字型中并沒(méi)有文件中的某
            些字的字形。 
            試著改變?yōu)g覽器上的功能選項(xiàng)中的 "Encoding" 項(xiàng)目切換為 Big5 或 UTF-8。 這項(xiàng)設(shè)定在不同
            的瀏覽器中,會(huì)放在不同的位置。 
            --------------------------------------------------------------------------------
            20. 什麼是 Big5/GCCS, EUDC 及 Big5+ 碼 ? 
            (1998-12-31) 

            EUDC (Extended User-defined Characters) 是香港地區(qū)定的一組 標(biāo)準(zhǔn)使用者造字
             (user-defined characters)。(日文稱(chēng)為 gaiji)?這些字包含 R&D EUDC, HKUST EUDC 及 GCCS EUDC。 

            Big5 碼是在臺(tái)灣定的,這些繁體字也在香港使用。但在香港有些字很少在 在臺(tái)灣使用,因些香港政
            府將 Big5 字集再加上 3049 個(gè)字定為 "政府中文字 集" (Government Chinese Character Set, GCCS),
            目前已廣為使用中。 

            臺(tái)灣的行政院研究發(fā)展考核委員會(huì)(研考會(huì))委中文電腦推廣基金會(huì)(中推會(huì)) 進(jìn)行 Big5 碼字集擴(kuò)編,
            約為 24,066 字,稱(chēng)為 Big5+ 碼。 

            請(qǐng)注意:Big5/GCCS, EUDC 及 Big5+ 碼并未在 IANA 冊(cè)編碼名稱(chēng)供 在 Internet 上使用。 

            為了將來(lái)可互通使用 (interoperability),請(qǐng)?jiān)?nbsp;WWW 中的 HTML 及 檔中加上正確的標(biāo)頭。假如
            您不知道確切的字集,e-commerce 就無(wú)法正確 運(yùn)作了。假如您使用 Big5+ 碼,請(qǐng)?jiān)谖募臉?biāo)頭
            上加上解或處理指令 (processing instruction)。在 XML 中,我們建議在文件的第二個(gè)標(biāo)示 
            (tag) 寫(xiě)上 "ascc-hint" 的處理指令并使用 "non-IANA" 屬性。
             <?xml version="1.0" encoding="Big5" ?> <?ascc-hint non-IANA="Big5plus" ?> 及 

                    <?xml version="1.0" encoding="Big5" ?>
                    <?ascc-hint non-IANA="GCCS" ?>
                  


            --------------------------------------------------------------------------------

            posted on 2006-01-06 15:44 夢(mèng)在天涯 閱讀(979) 評(píng)論(1)  編輯 收藏 引用 所屬分類(lèi): UML/XML

            評(píng)論

            # re: 中文xml FQA 2006-01-20 15:01 flying

            請(qǐng)助!
            上面的代碼編譯不過(guò),提示說(shuō)IXMLDOMDocument3Ptr沒(méi)有定義!

            在system32中沒(méi)有msxml4a.dll ,而msxml4.dll 和 msxml4r.dll有.
            請(qǐng)問(wèn):是因?yàn)槿蹦莻€(gè)DLL造成編譯通不過(guò)的嗎?如果是,這么解決啊!

            懇求大俠幫助!!!!!!  回復(fù)  更多評(píng)論   

            公告

            EMail:itech001#126.com

            導(dǎo)航

            統(tǒng)計(jì)

            • 隨筆 - 461
            • 文章 - 4
            • 評(píng)論 - 746
            • 引用 - 0

            常用鏈接

            隨筆分類(lèi)

            隨筆檔案

            收藏夾

            Blogs

            c#(csharp)

            C++(cpp)

            Enlish

            Forums(bbs)

            My self

            Often go

            Useful Webs

            Xml/Uml/html

            搜索

            •  

            積分與排名

            • 積分 - 1811120
            • 排名 - 5

            最新評(píng)論

            閱讀排行榜

            无码任你躁久久久久久| 久久国产热这里只有精品| 成人久久免费网站| 久久久无码一区二区三区| 99久久精品国产毛片| 亚洲精品无码专区久久同性男 | 国产亚洲欧美成人久久片| 99久久国产免费福利| 久久精品国产亚洲AV香蕉| 亚洲欧美精品伊人久久| 国产成人精品综合久久久久| 四虎国产精品免费久久5151| 亚洲精品美女久久777777| 久久久久亚洲AV成人网人人网站| 久久久久无码精品国产| 久久久久久精品成人免费图片| 丁香久久婷婷国产午夜视频| 久久精品国产亚洲AV电影| 久久笫一福利免费导航| 国内精品久久久久久久亚洲| 国内精品伊人久久久久av一坑| 久久亚洲精品成人无码网站| 99久久无码一区人妻| 91精品国产高清91久久久久久| 狠狠色丁香久久婷婷综合图片 | 久久91精品国产91久久户| 色欲av伊人久久大香线蕉影院| 亚洲国产成人精品91久久久| 久久国产精品免费一区| 97精品国产97久久久久久免费| 99久久超碰中文字幕伊人| 99999久久久久久亚洲| 久久精品人成免费| 国产精品国色综合久久| 久久久久久久综合日本亚洲| 久久青草国产精品一区| 久久96国产精品久久久| 亚洲午夜久久久精品影院| 久久久久免费精品国产| 91亚洲国产成人久久精品| 国产精品嫩草影院久久|