以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  有关Substring取字符时存在问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2883)

--  作者:baoxyang
--  发布时间:2009/5/22 9:27:00
--  有关Substring取字符时存在问题
有关Substring取字符时是正常的,取汉字时会提示错误或取得数据为乱码?请老大关注下!
--  作者:baoxyang
--  发布时间:2009/5/22 9:37:00
--  
使用Substring取文本数据时,同样的代码,同样的文本文件(此文件数据中含有汉字),一台会提示错误,一台取得乱码?如果文本文件中无汉字都正常取得数据,结果一样。


--  作者:baoxyang
--  发布时间:2009/5/22 9:39:00
--  
郁闷呀,昨天弄了一天,才没有解决。头痛呀!
--  作者:baoxyang
--  发布时间:2009/5/22 9:50:00
--  
哦,应不是Substring的问题,是这个代码中取汉字产生的问题。
   Dim s As string = FileSys.ReadAllText("d:\\ChkOutU1.txt")
    Dim Multi As String = s
    Dim Values() as String
    Dim s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13 as string
    Values = Multi.split(Chr(10))
    For Index As Integer = 0 To Values.Length - 2
        s1 = Values(Index)
发现ChkOutU1.txt中有汉字的话,s1的值,汉字部分取得乱码。字符正常。所以造成SubString取值结果出错了。

--  作者:狐狸爸爸
--  发布时间:2009/5/22 9:50:00
--  

用记事本打开你的文本文件,令存,编码类型选择Unicode,不能选择Ansi


图片点击可在新窗口打开查看此主题相关图片如下:asd.gif
图片点击可在新窗口打开查看

--  作者:baoxyang
--  发布时间:2009/5/22 10:09:00
--  
机器A取得结果为如图所示
图片点击可在新窗口打开查看此主题相关图片如下:11.gif
图片点击可在新窗口打开查看

机器B取得结果为如图所示
图片点击可在新窗口打开查看此主题相关图片如下:22.gif
图片点击可在新窗口打开查看
Dim s As string = FileSys.ReadAllText("d:\\ChkOutU1.txt")
    Dim Multi As String = s
    Dim Values() as String
    Dim s1 as string
    Values = Multi.split(Chr(10))
     s1 = Values(3) \'取第三行数据,其中有汉字,如取第一行,正常。
   e.form.controls(“textbox1”).value = s1

--  作者:baoxyang
--  发布时间:2009/5/22 10:10:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:chkoutu1.txt

文本文件都是这个。

--  作者:baoxyang
--  发布时间:2009/5/22 10:11:00
--  
请老大!帮看看乍回事呀?弄不明白。为谢了!
--  作者:baoxyang
--  发布时间:2009/5/22 10:22:00
--  
文本文件是由系统导出或条形码产生的文本文件呀。不会还在操作员进行改变类型吧。不太现实的。不知是否是老大说的这个问题。我测下。


--  作者:狐狸爸爸
--  发布时间:2009/5/22 10:25:00
--  
1、你的文本文件还是ANSI编码,并没有按照我的要求改过来。
2、如不想改文本文件的编码,就改自己的代码,用:
Dim s As string = FileSys.ReadAllText("d:\\ChkOutU1.txt",System.Text.Encoding.Default)