有关Substring取字符时是正常的,取汉字时会提示错误或取得数据为乱码?请老大关注下!
使用Substring取文本数据时,同样的代码,同样的文本文件(此文件数据中含有汉字),一台会提示错误,一台取得乱码?如果文本文件中无汉字都正常取得数据,结果一样。
哦,应不是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取值结果出错了。
用记事本打开你的文本文件,令存,编码类型选择Unicode,不能选择Ansi
此主题相关图片如下:asd.gif
机器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
文本文件是由系统导出或条形码产生的文本文件呀。不会还在操作员进行改变类型吧。不太现实的。不知是否是老大说的这个问题。我测下。
1、你的文本文件还是ANSI编码,并没有按照我的要求改过来。
2、如不想改文本文件的编码,就改自己的代码,用:
Dim s As string = FileSys.ReadAllText("d:\ChkOutU1.txt",System.Text.Encoding.Default)