社区
C#
帖子详情
簡繁體的轉換問題
foxfab
2007-08-03 09:19:31
由于我們公司使用的是繁體資料庫,為了避免簡體字在寫入繁體資料庫時候會出現亂碼,我使用以下方法對SQL進行轉換。
string sql= Microsoft.VisualBasic.Strings.StrConv(sql, VbStrConv.TraditionalChinese, 0);
一直以來都沒問題。可是最近不行了,怎么轉化都是亂碼,百思不得其解,忘大家救命,還會有其他問題影響到嗎?
...全文
341
9
打赏
收藏
簡繁體的轉換問題
由于我們公司使用的是繁體資料庫,為了避免簡體字在寫入繁體資料庫時候會出現亂碼,我使用以下方法對SQL進行轉換。 string sql= Microsoft.VisualBasic.Strings.StrConv(sql, VbStrConv.TraditionalChinese, 0); 一直以來都沒問題。可是最近不行了,怎么轉化都是亂碼,百思不得其解,忘大家救命,還會有其他問題影響到嗎?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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'你的数据')
不管是简繁体,还是日文韩文,还是其它文字,都不会出现乱码了
VFP简繁体转换
简体与繁体的互相转换
网页简繁体转换包及DEMO
网页简繁体转换包及DEMO,简体和繁体互换,只需一点立刻出现..
.net实现简繁体转换
.net 简繁体转换 Encode.dll EncodeRobert Traditional。 .net实现简繁体转换 主要用Encode.dll 实现的。 我发上来的是实例源码,大家有兴趣的可以用反编译工具看看Encode.dll 的代码实现。 具体用法请参考: http://blog.csdn.net/farawayplace613/archive/2008/09/10/2910527.aspx
typescript使用nodejs实现简繁体转换
typescript使用nodejs实现简繁体转换,可以转换子文件夹, 运行方式:将文件复制到工程的files文件夹,运行node app.js "" s2t(简体转繁体)或node app.js "" t2s(繁体转简体)即可
Delphi工程简繁体转换 1.006
Delphi工程简繁体转换是一款 帮助Delphi程序员把自己所开发的简体中文版Delphi工程源码转换为繁体中文版源码,然后,在繁体中文环境下直接编译转换得到的繁体中文版源码即可得到彻底的繁体中文版,整个过程不需要任何编码操作!
C#
111,094
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章