ANSI编码问题(给500分)

scegg 2004-07-29 04:28:19
大家好,现在有一个难题:

由于.Net本身不支持ANSI编码(采用ASCII编码导致所有中文变成问号)。现在求一个编码和解码函数。给500分。

编码函数,以String为参数,返回Byte组。
解码函数,以Byte组为参数,返回String。

ANSI就是早期的DOS下的那样的对中文等支持的方式,也是现在文件系统用的编码。如果想检验自己的编码是否正确,只需要把String直接保存到文件,把Byte直接保存到另一个文件,两文件应该是完全一样的。

别告诉我需要用文件来中转哦,这样我也会,呵呵~。关键要高效。

有疑问请联系我MSN: Allen_St_Clair@msn.com
...全文
275 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
scegg 2004-07-30
  • 打赏
  • 举报
回复
To 大象:
如果代码用在了ASPX里,页面默认是UTF-8(好像是,但不是GB2312),执行代码的时候,是使用GB2312(服务器中文系统)还是UTF-8?
scegg 2004-07-30
  • 打赏
  • 举报
回复
To totanywu:
您看懂我问的是什么了没?
scegg 2004-07-30
  • 打赏
  • 举报
回复
To 大象:
1 我没有说是DOS专用的啦。只是说DOS有。
2 关键是,最好能让对方选择字符集,而不是系统默认,也不是GB2312。
bitsbird 2004-07-29
  • 打赏
  • 举报
回复
this.Response.ContentEncoding = System.Text.Encoding.Default;
this.Response.Charset = "GB2312";
this.Response.Write(str);
webmasterss 2004-07-29
  • 打赏
  • 举报
回复
是呀,那个大象说的应该没问题啊!
CMIC 2004-07-29
  • 打赏
  • 举报
回复
在windows文本编辑器默认的字符集也是ANSI,怎么成了dos专用的了,它是系统默认标准字符集。
ANSI字符集和你用的操作系统有关,如果你用的是简体中文系统,它应该对应gb2312,所以
解码函数,以Byte组为参数,返回String:
System.Text.Encoding.Default.GetString();
编码函数,以String为参数,返回Byte组
System.Text.Encoding.Default.GetBytes();

liyiding23 2004-07-29
  • 打赏
  • 举报
回复
totanywu 2004-07-29
  • 打赏
  • 举报
回复
少了一个IMPORTS

Imports System.Text.Encoding
totanywu 2004-07-29
  • 打赏
  • 举报
回复
这个问题我已经解决掉了! 试试下面哪个!
' comments: Example: doConvert(strString ,"GB2312","UNICODE")
' incoming parameter:
' srcString : source string will be Converted;
' srcCoding : source ansc codingname; GB2312 ....
' desCoding : destination codingname; UNICODE,UTF-8 ....
' retErrMsg : if some errors occurs then return the detail message thrown this variabal
' output value:
' doConvert : had converted string , errors occurs then return null
Public Function doConvert(ByVal srcString As String, _
ByVal srcCoding As String, _
ByVal desCoding As String) As String
Dim _objSRCEncoding As System.Text.Encoding
Dim _objDESEncoding As System.Text.Encoding
Dim retString As String = ""
Try
_objSRCEncoding = System.Text.Encoding.GetEncoding(srcCoding)
_objDESEncoding = System.Text.Encoding.GetEncoding(desCoding)
retString = _objDESEncoding.GetString(_objDESEncoding.Convert(_objSRCEncoding, _objDESEncoding, _objSRCEncoding.GetBytes(srcString)))
Catch ex As Exception
Err.Clear()
Finally
End Try
doConvert = retString
End Function

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧