原代码如下:问题出现提前节点名称是出现乱码,eg:“节点名称        =  枣庄-EPON-中兴- 咝率兰透呖平ㄐ?  ”这时就会提示“字符串语法错误”。 请高手指教如何避免出现乱码或者出现乱码也行,直接将有乱码的选项导入ACCESS中也行,太感谢了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Dim ac_Tmp1    As New ADODB.Connection
    With ac_Tmp1
        If .State = adStateOpen Then .Close
        .ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\zte.mdb;Mode=ReadWrite;Persist Security Info=False"
        .Open
    End With
    ac_Tmp1.Execute "delete * from [IP]"
    
Dim v() As StringDim i As Long
Dim SS = Split(RichTextBox2.Text, vbCrLf)ReDim Preserve v(UBound(S)) As String
For i = 0 To UBound(v)
 v(i) = S(i)
If Left(v(i), 3) = "节点号" Then
    strdian = Replace(v(i), " ", "")
    strdian = Replace(strdian, "节点号=", "")
    
   
ElseIf Left(v(i), 7) = "设备IP地址1" Then
    strIPAddr = Replace(v(i), " ", "")
    strIPAddr = Replace(strIPAddr, "设备IP地址1=", "")
    
    
    
ElseIf Left(v(i), 4) = "节点名称" Then
   strNodeName = Replace(v(i), " ", "")
   strNodeName = Replace(strNodeName, "节点名称=", "")
    
  
    ac_Tmp1.Execute " insert into [IP](IP,mingcheng,jiedianhao) values('" & strIPAddr & "', '" & strNodeName & "','" & strdian & "')"End IfNext i
  
ac_Tmp1.Close
Winsock2.Close

解决方案 »

  1.   

    http://download.csdn.net/source/1498324
      

  2.   

    试试:Dim S() As StringS = Split(strConv(RichTextBox2.Text, vbUnicode), vbCrLf)
      

  3.   

    节点名称 = 枣庄-EPON-中兴-新世纪高科建
      

  4.   


    现在不是转换成VBUNICODE的问题,转换后全成乱码了!!!!!!!!!!!1
      

  5.   

    Private Sub Command1_Click()
    Dim s As String
    Dim d As String
    Dim t As String
    s = "枣庄-EPON-中兴- 咝率兰透呖平ㄐ? "
    t = StrConv(Mid(s, 13), vbFromUnicode)
    d = Left(s, 12) + StrConv(MidB(t, 2, LenB(t) - 3), vbUnicode)
    Debug.Print d '枣庄-EPON-中兴- 新世纪高科建
    End Sub
      

  6.   

    试试:Dim S() As StringS = Split(RichTextBox2.Text, vbCrLf)还有乱码吗?
      

  7.   

    你不会举一反三?
    提示你一下,调用Word里面“ctrl+右箭头”对应的功能。
    VBA代码
        Selection.MoveRight Unit:=wdWord, Count:=1
    帮助你判断乱码从什么位置开始。
      

  8.   

    应该是你一开始写入 RichTextBox 的内容就有问题,要从源头上避免错误。
      

  9.   


    在导入ACCESS数据库时不能将所有的数据都导入吗? 为什么乱码就不能导入? 
      

  10.   

    如果你是通过TCP/IP Socket传输的这个字符串,那么原因就是你不能直接SendData String类型的变量,应用StrConv函数转为Byte()类型再发送。因为_DataArrival中GetData可能最后一个字节刚好是一个汉字的前半字节,下次_DataArrival中GetData才收到那个汉字的后半字节,如果你用String类型,很难实现把前后两次收到的strData重新连接为完整的字符串,而你用Byte(),则可以利用ReDim Preserve语句将前后两次收到的byteData放在一个Byte()中,然后再利用StrConv函数还原成String类型。