社区
C#
帖子详情
簡繁體的轉換問題
foxfab
2007-08-03 09:19:31
由于我們公司使用的是繁體資料庫,為了避免簡體字在寫入繁體資料庫時候會出現亂碼,我使用以下方法對SQL進行轉換。
string sql= Microsoft.VisualBasic.Strings.StrConv(sql, VbStrConv.TraditionalChinese, 0);
一直以來都沒問題。可是最近不行了,怎么轉化都是亂碼,百思不得其解,忘大家救命,還會有其他問題影響到嗎?
...全文
334
9
打赏
收藏
簡繁體的轉換問題
由于我們公司使用的是繁體資料庫,為了避免簡體字在寫入繁體資料庫時候會出現亂碼,我使用以下方法對SQL進行轉換。 string sql= Microsoft.VisualBasic.Strings.StrConv(sql, VbStrConv.TraditionalChinese, 0); 一直以來都沒問題。可是最近不行了,怎么轉化都是亂碼,百思不得其解,忘大家救命,還會有其他問題影響到嗎?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Me866
2008-08-21
打赏
举报
回复
...
foxfab
2007-08-06
打赏
举报
回复
我知道問題的所在,我使用的方法本身并沒有問題,問題在于后面參數的選擇上面!
string sql= Microsoft.VisualBasic.Strings.StrConv(sql, VbStrConv.TraditionalChinese, 1033);
以下是詳細說明:
這個在 dotnet 上,需籍用 Microsort.VisualBasic.dll 的力量了
using Microsoft.VisualBasic;
string str = "中國"; str = Strings.StrConv(str, VbStrConv.SimplifiedChinese, 2052);
MessageBox.Show(str); //簡體的中國
str = Strings.StrConv(str, VbStrConv.TraditionalChinese, 1033);
MessageBox.Show(str); //繁體的中國
請參考 String.StrConv 的 msdn 說明
注意到:
第一個參數是待轉換的字串
第二個參數欲轉換成字體列舉值 (enum)
第三個參數(重要),是文字轉換完後,最後對應的編碼格式 (LocaleID)
1028 繁體中文
1033 ASCII
2052 簡體中文
為何第二次轉換回繁體時,不用 1028 而用 1033 呢?
首先,要先知道,有些簡體中文的編碼值是在繁體中文是對應不到任何字的。此時,顯示的字就會是 "?" 號。
因為 2052 的 「 国] 已經是簡體字了,轉回到繁體時,剛好其編碼對應不到1028 的編碼,因此會是問號。
最好的方法,是以 en-US 做為編碼格式。當以 en-US 做為最後的編碼格式時,又碰到亞洲字時,就會以 unicode 做為儲存編碼格式。此剛好與 dotnet 的 string 儲存格式相同。因此解決了所有問題。
因此,當我們在做簡繁轉換時,請將第三個參數都設成 1033
foxfab
2007-08-03
打赏
举报
回复
我強制轉化成UTF-8都還不行,上邊那個朋友(zzultc(gery) )的方式我原來就有試過,也還是不行,主要不知道為什么會轉換一部分,先前我做的一個網站,同樣的架構都是可以的,真的很神奇,呵呵,能力有限,非常謝謝大家幫忙
ll124993513
2007-08-03
打赏
举报
回复
那把 整个页面的简体中文转换成英文,用一个Button来实现这个功能应该怎么做呢
foxfab
2007-08-03
打赏
举报
回复
那個方法還是有轉換的,只是轉換不完全,不知道為什么會這個樣子,比如說我轉換以下簡體字:
“新浪体育讯 2007银河娱乐斯坦科维奇洲际篮球杯落幕,斯洛文尼亚在最后一场比赛中78-51力克非洲冠军安哥拉,最终以4胜1负积9分的战绩勇夺冠军。
”
轉換以后如下:
“新浪體育? 2007?河??斯坦科?奇洲??球杯落幕,斯洛文尼?在最后一?比?中78-51力克非洲冠?安哥拉,最?以4勝1??9分的??勇?冠?。”
cherishLot
2007-08-03
打赏
举报
回复
呵呵^
zzultc
2007-08-03
打赏
举报
回复
繁体字编码应该是big5编码的,这里假设原来简体字符串为gbstring,转换后为kk;代码如下:
string kk=Encoding.GetEncoding("big5").GetString(Encoding.Convert(Encoding.GetEncoding("gb2312"),Encoding.GetEncoding("big5"),Encoding.GetEncoding("bg2312").GetBytes(gbstring)));
呵呵,没想到这一行竟然这么长!!
楼主看仔细了!
godgreat
2007-08-03
打赏
举报
回复
沙发,帮忙顶
XuFrank
2007-08-03
打赏
举报
回复
前台不需要做任何转换.
数据表设计时,存汉字的字段,设为nVarChar/nChar/nText类型(依情况选择一种类型).
在插入更新时,在该类型的字段数据前加上 N'你的数据'
eg:
Insert into Table Values('A1','2007-08-03',N'你的数据')
不管是简繁体,还是日文韩文,还是其它文字,都不会出现乱码了
office 简繁体转换
office 简繁体转换 office 简繁体转换 office 简繁体转换 office 简繁体转换
网页简繁体转换包及DEMO
网页简繁体转换包及DEMO,简体和繁体互换,只需一点立刻出现..
中文简繁体转换工具
C# 中文转换拼音 中文简繁体转换工具
最好的简繁体转换软件 OpenCC 1.1.6
OpenCC是一款专注于简繁体中文转换的开源软件,可以在windows、Linux、...该软件除了可以把实现 简体繁体 转换以外,还可以根据大陆、台湾、香港等地区的不同习惯把专业词汇进行转换,是目前最好的简繁体转换软件。
PB简繁体转换
PB9.0写的简繁体转换,含原代码。Big2GB.ocx
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章