我测试如下:
环境:Win2000 Server(中文)+Oracle8.1.7
数据库字符集:WE8ISO8859P1(英文)
客户端字符集设置:WE8ISO8859P1执行代码没有问题
Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    
    rs.CursorLocation = adUseClient
    cn.Open "Provider=MSDAORA.1;Password=tiger;User ID=scott;Data Source=ORACLE;Persist Security Info=True"
    rs.Open "select * from a", cn, adOpenDynamic, adLockOptimistic
    rs.AddNew
    rs.Fields("c1").Value = "~"
    rs.Update
    rs.Close
    
    rs.Open "select * from a", cn, adOpenStatic, adLockReadOnly
    Debug.Print rs.Fields("c1").Value
    Text1.Text = rs.Fields("c1").Value都显示正确了。包括在sqlPLUS中
SQL> select * from a;C1
----------
~建议你,检查一下客户端的字符集设置和服务器端的是否一致。