我需要在nvarchar類型的數據庫列中存儲255個字符。他們的字符是UTF-8,可以是多字節。我不是字符編碼最好的,所以我不確定這是否合理。我想抱着255個字符,可以是任何語言等我的nvarchar列應該多大才能存儲最多255個字符?
1
A
回答
1
3
您可以在this中找到一些關於不同Unicode編碼的簡單明瞭的背景信息,這是我在開源項目手冊中編寫的章節。該背景信息將幫助您瞭解我答案中的一些細節。
關於約nvarchar
由Simmo提供的鏈接指出nvarchar
以UCS-2格式存儲。因此,您需要先將UTF-8字符串轉換爲UCS-2字符串,然後再將它們存儲到數據庫中。你可以找到C++代碼來做這個轉換here。
微妙而重要的一點是,轉換代碼實際上會轉換爲UTF-16,它是UCS-2的超集(UTF-16支持使用代理對,而UCS-2則不支持)。我不使用SQL Server,所以我不知道它是否會投訴,如果你試圖插入一些代理對。 (也許這裏的其他人可以確認它是否會)。
如果 SQL服務器不允許代理對,那麼就會出現在你的應用程序可以支持的語言範圍的限制,但至少你知道nvarchar(255)
足以滿足您的需求。
在另一方面,如果SQL服務器允許使用代理對,那麼你可能想使用nvarchar(510)
以允許(遠程)的可能性,每一個字符將被由代理對。
相關問題
- 1. 在一個存儲過程(SQL 2005)參數,我應該用@Name爲nvarchar(255)或nvarchar的@Name(最大)
- 2. 我可以存儲140個字符的最大字符數是多少?
- 3. 存儲多個位 - 我應該使用多個列還是單個位域列?
- 4. 我應該走多遠才能最小化數據庫查詢?
- 5. 我應該存儲同一個文件的多個實例嗎?
- 6. nvarchar中有多少個字符(MAX)
- 7. 可以在SQL Server上的NVARCHAR(4000)中存儲多少個字符?
- 8. 我可以在GoInstant中存儲的最大字符串長度是多少?
- 9. 你應該在RoR中存儲很多自定義字符串?
- 10. 如何才能我在我的255
- 11. 我應該有1個還是多個存儲庫?
- 12. 我是否需要多次分支存儲庫才能創建多個請求?
- 13. 我應該將HTML存儲爲nvarchar(MAX)還是ntext?
- 14. 我應該使用什麼來存儲多個圖像?
- 15. 我應該如何將多個值存儲到SQL行中?
- 16. 我應該如何在MySQL表中存儲這些多個值?
- 17. mysql varchar(255)只能存儲多達4位小數的數字,爲什麼?
- 18. 我怎樣才能在一個字符串中替換多個子字符串?
- 19. 我怎樣才能把多個字符組合成一個字符串
- 20. 在nvarchar列中查找兩個或更多相似字符
- 21. 如果我在MySQL中存儲int(255),MAX數是多少?
- 22. 將多個行到一個 「備忘錄」 爲nvarchar(最大)
- 23. 我應該如何爲Mac App存儲兩個字符串?
- 24. C風格字符數組 - 我們存儲多少個字節?
- 25. 在一列中存儲多個值與在多個值中存儲多列
- 26. VBA 255 1個單元格中的最大字符數
- 27. 我的密碼鹽應該多大?
- 28. 我應該將Solr中存儲字段的大小保持在最小值嗎?
- 29. 覆蓋流暢的NHibernate的長文本字符串nvarchar(MAX)不nvarchar(255)
- 30. Arduino,最大陣列大小> 255?
我真的很確定nvarchar(255)應該沒問題。 – DForck42 2011-04-21 17:15:24
'nvarchar'將數據存儲爲UTF-16,而不是UTF-8。 – Gabe 2011-04-21 17:31:11