国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 資料庫 mysql教程 SQL Server 2005 中的 Unicode 支持

SQL Server 2005 中的 Unicode 支持

Jun 07, 2016 pm 03:04 PM
server sql unicode 支援

Unicode 支持 是 SQL Server 2005 中多語言 支持 的基

  Unicode 支持SQL Server 2005 中多語言支持的基礎(chǔ)。Unicode 是由 Unicode Consortium(一個提倡為所有語言使用單一字符集的組織)創(chuàng)立的一項標(biāo)準(zhǔn)。SQL Server 2005 支持 Unicode 標(biāo)準(zhǔn) 3.2 版。Unicode 標(biāo)準(zhǔn)的 3.01 版與 ISO-10646(一項與 Unicode 中的所有碼位均相符的國際標(biāo)準(zhǔn))完全相同。

  Unicode 的工作方式是,為每個字符提供一個唯一的碼位,該碼位與平臺、程序或語言無關(guān)。支持 Unicode 的程序可以處理任何語言的數(shù)據(jù)。因為其設(shè)計宗旨是涵蓋世界上所有語言的所有字符,所以不需要讓不同的代碼頁來處理不同的字符集。

  因為所有 Unicode 系統(tǒng)都統(tǒng)一使用相同的位模式來表示所有字符,所以從一個系統(tǒng)轉(zhuǎn)到另一個系統(tǒng)時,不會出現(xiàn)字符轉(zhuǎn)換不正確的問題。

  管理國際數(shù)據(jù)庫中的字符數(shù)據(jù)的最簡單方法是始終使用 Unicode nchar、nvarchar 和 nvarchar(max) 數(shù)據(jù)類型,而不使用它們對應(yīng)的非 Unicode 數(shù)據(jù)類型:char、varchar 和 text。這樣,客戶端與所有其他客戶端所看到的數(shù)據(jù)中的字符將是相同的。如果所有使用國際數(shù)據(jù)庫的應(yīng)用程序還使用 Unicode 變量來代替非 Unicode 變量,則不需要在系統(tǒng)中的任何位置執(zhí)行字符轉(zhuǎn)換。

  注意 未來版本的 Microsoft SQL Server 中將刪除 ntext 數(shù)據(jù)類型。

  Unicode 碼位及它們所代表的字符與用于可視呈現(xiàn)的“字形”是分開的。ISO 標(biāo)準(zhǔn) (ISO/IEC 9541-1) 將字形定義為“與具體設(shè)計無關(guān)的可識別抽象圖形符號”。因此,一個字符不必總是由相同的字形乃至唯一的字形來表示。所選擇的字體決定將使用什么字形來表示特定碼位或一系列碼位。

  有關(guān)詳細(xì)信息,請參閱 Unicode Consortium 網(wǎng)站。

  編碼

  Unicode 將碼位映射到字符,但實際上并不指定數(shù)據(jù)在內(nèi)存、數(shù)據(jù)庫或網(wǎng)頁中的表示方式。這便是 Unicode 數(shù)據(jù)編碼發(fā)揮作用的地方。有許多不同的 Unicode 編碼。多半選擇一種 Unicode 數(shù)據(jù)類型即可,不必為這些細(xì)節(jié)操心;不過,在以下情況下了解編碼有重要意義:

  ?應(yīng)對可能以不同方式對 Unicode 進(jìn)行編碼的應(yīng)用程序時

  ?向其他平臺(非 Microsoft Windows)或 Web 服務(wù)器發(fā)送數(shù)據(jù)時

  ?導(dǎo)入其他編碼的數(shù)據(jù)或?qū)?shù)據(jù)導(dǎo)出為其他編碼時

  Unicode 標(biāo)準(zhǔn)定義了其單一字符集的多種編碼:UTF-7、UTF-8、UTF-16 和 UTF-32。本部分對這些常見的編碼進(jìn)行說明:

  ?UCS-2

  ?UTF-16

  ?UTF-8

  SQL Server 通常以 UCS-2 編碼方案存儲 Unicode。不過,許多客戶端以另一種編碼方案(如 UTF-8)來處理 Unicode。這種情況在基于 Web 的應(yīng)用程序中經(jīng)常出現(xiàn)。在 Microsoft Visual Basic 應(yīng)用程序中,字符串以 UCS-2 編碼方案來處理。因此,不需要顯式地指定 Visual Basic 應(yīng)用程序與 SQL Server 實例之間的編碼方案轉(zhuǎn)換。

  SQL Server 2005 使用 Unicode (UTF-16) 來對 XML 數(shù)據(jù)進(jìn)行編碼。類型為 xml 的列中的數(shù)據(jù)以內(nèi)部格式存儲為二進(jìn)制大型對象 (BLOB),以支持 XML 模型特征,如文檔順序和遞歸結(jié)構(gòu)。因此,從服務(wù)器檢索的 XML 數(shù)據(jù)會以 UTF-16 格式輸出;如果想要為檢索的數(shù)據(jù)使用其他編碼,則應(yīng)用程序必須對所檢索的 UTF-16 數(shù)據(jù)執(zhí)行必要的轉(zhuǎn)換。《SQL Server 2005 聯(lián)機(jī)叢書》中的 XML 最佳實踐提供了如何為從 varchar(max) 列中檢索的 XML 數(shù)據(jù)顯式地聲明編碼的示例。

  使用 UTF-16 編碼是因為它可以處理 2 字節(jié)或 4 字節(jié)字符,并且處理是依照面向字節(jié)的協(xié)議進(jìn)行的。這些特性使得 UTF-16 非常適合于遍歷使用不同編碼和字節(jié)排序系統(tǒng)的不同計算機(jī)。因為 XML 數(shù)據(jù)通常在網(wǎng)絡(luò)上得到廣泛共享,所以在數(shù)據(jù)庫中及在將 XML 數(shù)據(jù)導(dǎo)出到客戶端時保持默認(rèn)的 UTF-16 存儲格式是有意義的。

  UCS-2

  UCS-2 是 UTF-16 的前身。UCS-2 與 UTF-16 的不同之處是,UCS-2 是一種固定長度編碼,它以 16 位值(2 個字節(jié))表示所有字符,因此不支持補(bǔ)充字符。UCS-2 常與 UTF-16 發(fā)生混淆,UTF-16 用于在內(nèi)部表示 Microsoft Windows 操作系統(tǒng)(Windows NT、Windows 2000、Windows XP 和 Windows CE)中的文本,但 UCS-2 受到的限制更多。

  注意 有關(guān)在 Windows 操作系統(tǒng)中使用 Unicode 的最新信息,請參閱 Microsoft Developer Network (MSDN) 庫中的 Unicode。建議 Windows 應(yīng)用程序在內(nèi)部使用 UTF-16,僅在必須使用其他格式時再通過接口作為“薄層”的一部分進(jìn)行轉(zhuǎn)換。

  在 Microsoft SQL Server 2000 和 Microsoft SQL Server 2005 中以 Unicode 存儲的信息使用 UCS-2 編碼,無論使用的是哪個字符,該編碼都將每個字符存儲為兩個字節(jié)。因此,對拉丁語字母“A”的處理方式與對西里爾文字母 Sha ())、希伯來語字母 Lamed (ì)、泰米爾語字母 Rra (?) 或日語平假名字母 E (?|) 的處理方式是相同的。每個字母都有一個唯一的碼位(對于上述字母,碼位分別為 U+0041、U+0248、U+05DC、U+0BB1 和 U+3048,每個四位十六進(jìn)制數(shù)表示 UCS-2 使用的那兩個字節(jié))。

  因為 UCS-2 只考慮了 65,536 個不同碼位的編碼,其本身無法處理補(bǔ)充字符,只能將補(bǔ)充字符視為未定義的 Unicode 代理項字符,這些字符組對后定義補(bǔ)充字符。不過,SQL Server 可以存儲補(bǔ)充字符而不會有字符丟失或損壞的風(fēng)險。通過創(chuàng)建自定義 CLR 函數(shù),可以擴(kuò)展 SQL Server 處理代理項對的能力。有關(guān)處理代理項對和補(bǔ)充字符的詳細(xì)信息,請參閱本文后面的“補(bǔ)充字符和代理項對”部分。

  注意 補(bǔ)充字符定義為“具有補(bǔ)充碼位的 Unicode 編碼字符”。補(bǔ)充碼位的范圍在 U+10000 和 U+10FFFF 之間。

  UTF-8

  UTF-8 是一種旨在以與計算機(jī)上的字節(jié)排序無關(guān)的方式來處理 Unicode 數(shù)據(jù)的編碼方案。在處理 ASCII 及其他要求使用 8 位編碼的面向字節(jié)的系統(tǒng)(例如,必須覆蓋大量使用不同編碼、不同字節(jié)順序和不同語言的計算機(jī)的郵件服務(wù)器)時,UTF-8 會有幫助。盡管 SQL Server 2005 不以 UTF-8 格式存儲數(shù)據(jù),但它仍支持使用 UTF-8 來處理可擴(kuò)展標(biāo)記語言 (XML) 數(shù)據(jù)。有關(guān)詳細(xì)信息,請參閱本文的 SQL Server 2005 中的 XML 支持部分。

  其他數(shù)據(jù)庫系統(tǒng)(例如,Oracle 和 Sybase SQL Server)通過使用 UTF-8 存儲來支持 Unicode。視服務(wù)器的實現(xiàn)方式而定,從技術(shù)上講實現(xiàn)數(shù)據(jù)庫引擎可能比較容易,因為服務(wù)器上的現(xiàn)有文本管理代碼在一次處理一個字節(jié)的數(shù)據(jù)時并不要求進(jìn)行重大更改。不過,在 Windows 環(huán)境中,UTF-8 存儲有幾個缺點(diǎn):

  ?組件對象模型 (COM) 僅在其 API 和接口中支持 UTF-16/UCS-2。因此,如果數(shù)據(jù)以 UTF-8 格式存儲,必須始終進(jìn)行轉(zhuǎn)換。僅在使用 COM 時會出現(xiàn)此問題;SQL Server 數(shù)據(jù)庫引擎通常不會調(diào)用 COM 接口。

  ?Windows XP 和 Windows Server 2003 的內(nèi)核均采用 Unicode。UTF-16 是 Windows 2000、Windows XP 和 Windows Server 2003 的標(biāo)準(zhǔn)編碼。不過,Windows 2000、Windows XP 和 Windows Server 2003 都可以識別 UTF-8。因此,在數(shù)據(jù)庫中使用 UTF-8 存儲格式需要進(jìn)行許多額外的轉(zhuǎn)換。通常,轉(zhuǎn)換所需的額外資源不會影響 SQL Server 數(shù)據(jù)庫引擎,但可能會影響許多客戶端操作。

  ?執(zhí)行許多字符串操作時,UTF-8 的速度可能都會較慢。排序、比較及幾乎任何字符串操作的速度可能都會下降,因為字符的寬度不固定。

  ?UTF-8 往往需要 2 個以上的字節(jié),并且增加的大小會占用更多的磁盤和內(nèi)存空間。

  盡管有這些缺點(diǎn),但考慮到 XML 已成為一項重要的 Internet 通信標(biāo)準(zhǔn)這一事實,您可能希望考慮將默認(rèn)編碼設(shè)置為 UTF-8。

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Hibernate 框架中 HQL 和 SQL 的差異是什麼? Hibernate 框架中 HQL 和 SQL 的差異是什麼? Apr 17, 2024 pm 02:57 PM

HQL和SQL在Hibernate框架中進(jìn)行比較:HQL(1.物件導(dǎo)向語法,2.資料庫無關(guān)的查詢,3.類型安全),而SQL直接操作資料庫(1.與資料庫無關(guān)的標(biāo)準(zhǔn),2.可執(zhí)行複雜查詢和資料操作)。

Oracle與DB2的SQL語法比較與區(qū)別 Oracle與DB2的SQL語法比較與區(qū)別 Mar 11, 2024 pm 12:09 PM

Oracle和DB2是兩個常用的關(guān)聯(lián)式資料庫管理系統(tǒng),它們都有自己獨(dú)特的SQL語法和特性。本文將針對Oracle和DB2的SQL語法進(jìn)行比較與區(qū)別,並提供具體的程式碼範(fàn)例。資料庫連接在Oracle中,使用以下語句連接資料庫:CONNECTusername/password@database而在DB2中,連接資料庫的語句如下:CONNECTTOdataba

MySQL連線數(shù)對資料庫效能的影響分析 MySQL連線數(shù)對資料庫效能的影響分析 Mar 16, 2024 am 10:09 AM

MySQL連線數(shù)對資料庫效能的影響分析隨著網(wǎng)路應(yīng)用的不斷發(fā)展,資料庫成為了支援應(yīng)用系統(tǒng)重要的資料儲存和管理工具。在資料庫系統(tǒng)中,連線數(shù)是一個重要的概念,它直接關(guān)係到資料庫系統(tǒng)的效能和穩(wěn)定性。本文將從MySQL資料庫的角度出發(fā),探討連線數(shù)對資料庫效能的影響,並透過具體的程式碼範(fàn)例進(jìn)行分析。一、連線數(shù)是什麼?連線數(shù)指的是資料庫系統(tǒng)同時支援的客戶端連線數(shù),也可以理

C++軟體如何實現(xiàn)中文語言支援? C++軟體如何實現(xiàn)中文語言支援? Mar 29, 2024 pm 12:15 PM

C++軟體如何實現(xiàn)中文語言支援?隨著全球化的進(jìn)程,越來越多的軟體需要支援多語言,其中包括中文。在C++開發(fā)中,實作中文語言支援並不複雜,只需要一些基本的技巧和工具就可以輕鬆完成。本文將介紹如何在C++軟體中實現(xiàn)中文語言支持,並提供具體的程式碼範(fàn)例。 1.使用Unicode編碼為了支援中文,首先要確保軟體內(nèi)部使用的是Unicode編碼。 Unicode是一種標(biāo)準(zhǔn)的

SQL的目的:與MySQL數(shù)據(jù)庫進(jìn)行交互 SQL的目的:與MySQL數(shù)據(jù)庫進(jìn)行交互 Apr 18, 2025 am 12:12 AM

SQL用於與MySQL數(shù)據(jù)庫交互,實現(xiàn)數(shù)據(jù)的增、刪、改、查及數(shù)據(jù)庫設(shè)計。 1)SQL通過SELECT、INSERT、UPDATE、DELETE語句進(jìn)行數(shù)據(jù)操作;2)使用CREATE、ALTER、DROP語句進(jìn)行數(shù)據(jù)庫設(shè)計和管理;3)複雜查詢和數(shù)據(jù)分析通過SQL實現(xiàn),提升業(yè)務(wù)決策效率。

如何將 AWS Glue 爬網(wǎng)程序與 Amazon Athena 結(jié)合使用 如何將 AWS Glue 爬網(wǎng)程序與 Amazon Athena 結(jié)合使用 Apr 09, 2025 pm 03:09 PM

作為數(shù)據(jù)專業(yè)人員,您需要處理來自各種來源的大量數(shù)據(jù)。這可能會給數(shù)據(jù)管理和分析帶來挑戰(zhàn)。幸運(yùn)的是,兩項 AWS 服務(wù)可以提供幫助:AWS Glue 和 Amazon Athena。

MySQL和SQL:開發(fā)人員的基本技能 MySQL和SQL:開發(fā)人員的基本技能 Apr 10, 2025 am 09:30 AM

MySQL和SQL是開發(fā)者必備技能。 1.MySQL是開源的關(guān)係型數(shù)據(jù)庫管理系統(tǒng),SQL是用於管理和操作數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。 2.MySQL通過高效的數(shù)據(jù)存儲和檢索功能支持多種存儲引擎,SQL通過簡單語句完成複雜數(shù)據(jù)操作。 3.使用示例包括基本查詢和高級查詢,如按條件過濾和排序。 4.常見錯誤包括語法錯誤和性能問題,可通過檢查SQL語句和使用EXPLAIN命令優(yōu)化。 5.性能優(yōu)化技巧包括使用索引、避免全表掃描、優(yōu)化JOIN操作和提升代碼可讀性。

Go語言中SQL的基本概念及用法解析 Go語言中SQL的基本概念及用法解析 Mar 27, 2024 pm 05:30 PM

Go語言中SQL的基本概念及用法解析SQL(StructuredQueryLanguage)是一種專門用來管理和操作關(guān)聯(lián)式資料庫的語言。在Go語言中,我們通常使用SQL來執(zhí)行資料庫操作,例如查詢資料、插入資料、更新資料和刪除資料等。本文將介紹Go語言中SQL的基本概念及用法,並附帶具體的程式碼範(fàn)例。 1.連接資料庫在Go語言中,我們可以使用第三方函式庫來連接數(shù)據(jù)

See all articles