CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  API

中文乱码问题

楼主noApple(没有苹果)2004-08-01 14:20:34 在 VB / API 提问

服务器端:  
  Windows   NT   4.0     简体中文版  
  SQL   Server   6.5   英文版   字符集设置是ISO   8859-1  
   
  利用查询分析器,可以在数据库的表中insert中文,然后可以select   出中文  
   
  ----------------------------  
  客户端   :  
   
  Windows   2000   简单中文版  
  利用客户端程序取出的中文全部是乱码  
   
  应该怎么设置应用程序,才可以取出中文?  
   
  问题点数:100、回复次数:26Top

1 楼noApple(没有苹果)回复于 2004-08-01 14:24:39 得分 0

为什么看不到我发的贴子?  
  比如,下面在查询分析器里面,建立如下表,然后插入中文  
   
  create   table   u(name   char(10))  
  insert   into   u   values('我')  
  select   *   from   u  
   
  在客户端应用取出中文全部是乱码??Top

2 楼noApple(没有苹果)回复于 2004-08-01 14:32:48 得分 0

在线等待呀!!Top

3 楼wzjcntlqs(要做钱的主人)回复于 2004-08-01 14:51:19 得分 0

帮你顶!!!Top

4 楼wzjcntlqs(要做钱的主人)回复于 2004-08-01 14:54:36 得分 5

是不是因为版本的原因啊Top

5 楼noApple(没有苹果)回复于 2004-08-01 15:13:14 得分 0

谢谢楼上的  
   
  版主帮帮忙呀Top

6 楼zheninchangjiang(徐若涵)回复于 2004-08-01 15:15:41 得分 5

将列的数据类型改为unicode的类型的  
  在插入时  
  insert   into   u   values(N'我')  
  Top

7 楼zjcxc(邹建)回复于 2004-08-01 15:38:24 得分 5

用楼上的方法就可以了.  
   
   
  unicode类型指按下面的对应关系调整你的字段类型.  
  varchar     -->   nvarchar  
  char           -->   nchar  
  text           -->   ntextTop

8 楼noApple(没有苹果)回复于 2004-08-01 16:00:37 得分 0

sql   server   6.5   里面没有unicode数据类型呀。Top

9 楼zjcxc(邹建)回复于 2004-08-01 16:09:53 得分 0

不会吧,sql6.5没有   nvarchar/nchar/ntext这三种数据类型?Top

10 楼zjcxc(邹建)回复于 2004-08-01 16:10:47 得分 0

可惜没用过6.5,不能做出肯定判断.Top

11 楼noApple(没有苹果)回复于 2004-08-01 16:23:34 得分 0

没有,真的没有Top

12 楼noApple(没有苹果)回复于 2004-08-01 16:24:22 得分 0

再说即使有,也不能改的  
   
  数据库是不能做任何改动的,只能从应用程序着手呀Top

13 楼zjcxc(邹建)回复于 2004-08-01 16:29:52 得分 0

你用客户端的程序存储/取数据呢(同一台电脑,不要一台存,另一台取)?Top

14 楼noApple(没有苹果)回复于 2004-08-01 16:58:02 得分 0

结果如下:  
   
  1)如果把应用程序放到服务器端执行,取出的中文依然为乱码  
   
  2)   使用dts把数据表导入到一台sql   server2000上,然后配置应用程序连接sql   server2000  
  取出的中文很正常  
   
  我的推论:  
  既然sql   server   2000   的DTS可以把6.5上的中文取出,并导入到自己的数据库中,那应用程序也应该可以的,到底应该怎么设置呢?  
   
  Top

15 楼zjcxc(邹建)回复于 2004-08-01 17:11:29 得分 0

使用unicode编码,可以保证在不同的电脑(其实就是不同的语言环境下),都可以保证编码正确  
  不使用unicode编码,在不同的电脑上,就可能产生乱码(因为操作系统不同,对编码的解析就可能解释不同)  
   
  所以我让你测试一下:  
  你用客户端的程序存储/取数据呢(同一台电脑,不要一台存,另一台取)?  
  Top

16 楼zjcxc(邹建)回复于 2004-08-01 17:12:51 得分 0

关于unicode的相关知识,你先看看联机帮助上的说明.Top

17 楼noApple(没有苹果)回复于 2004-08-01 17:13:20 得分 0

板主,谢谢关注  
   
  我上面已经测试过了呀,你看看呀  
   
  既然sql   server2000   可以把中文从6.5导入到自己库,那应用程序也可以,到底该怎么弄呢Top

18 楼noApple(没有苹果)回复于 2004-08-01 17:52:35 得分 0

版主大人,帮帮忙呀  
   
  sql6.5不支持unicode,即使支持,我也不能改动  
   
  只能从应用程序着手呀Top

19 楼Jeewins(华锐)回复于 2004-08-02 08:34:28 得分 0

密切关注~ing~!Top

20 楼zheninchangjiang(徐若涵)回复于 2004-08-02 08:58:07 得分 0

Double   Byte   Character   Set   (DBCS)   characters     --是从MSDN中找到的Top

21 楼noApple(没有苹果)回复于 2004-08-02 11:09:06 得分 0

我还没有搞定呀  
   
  这个数据库是   一个售票软件的数据库,那个售票软件是PB做的,在那个软件里,中文处理都是正常的,在的程序里,就不行(我用vb\delphi都不行)Top

22 楼noApple(没有苹果)回复于 2004-08-02 11:15:10 得分 0

这个数据库是   一个售票软件的数据库,那个售票软件是PB做的,在那个软件里,中文处理都是正常的.  
  可是在我的程序里,就不行(我用vb\delphi都不行)  
  Top

23 楼j9898(j9988)回复于 2004-08-02 11:19:10 得分 85

Case1  
  Server:   SQL   Server   的   Code   Page   不為950--(简体中文为936,j9988注)  
  Client:裝有Office2000或上述任何會安裝   ODBC   3.70.0623的軟體,Access2000或Visual   Studio   6.0的Database   Tool   存取SQL的資料庫時,中文字會變亂碼?而且無法新增或修改中文資料?  
  =>這是由於ODBC   3.7x版預設會進行字元轉譯,以至於中文字會顯示亂碼,解決方式為在「控制台」/「ODBC資料來源(32位元)」建立DSN時,   不要核取「為字元資料執行轉譯」(Perform   translation   for   character   data)。如果您有程式是透過ODBC存取SQL   Server   database,在您的程式中可在Connection   String加上「AutoTranslate   =   No」,來避開此一問題。(注意这儿,J9988注)  
  但是您在新增或修改中文資料至後端資料庫時仍舊會有問題產生,請更新client的ODBC   Driver至3.70.0690解決此一問題,方式有下列兩種:  
  1.   安裝   SQL   7.0   SP1的mdac_typ.exe  
  2.   若不想安裝SQL7.0   SP1至client,只要複製一個3.70.0690版本的sqlsrv32.dll   至Windows\System    
  註:1.   請先備份   sqlsrv32.dll  
              2.   Windows目錄請根據您的機器上的路徑設定;Windows   NT   的預設目錄為   winnt\system32  
   
   
  Case2  
  Server:   SQL   Server   6.5  
  Client:裝有Office2000或上述任何會安裝   ODBC   3.70.0623的軟體,使用Microsoft   Query存取後端資料庫時,中文字會變成亂碼?而且無法新增或修改中文資料?  
  =>處理方式同Case1  
   
  Case3  
  Server:   英文NT   +   Traditional   Chinese   Language   Pace   +SQL   Server   7.0,   CodePage為950   +   IIS   4.0  
  Client:   中文IE   存取Server   的ASP中文為亂碼  
  解決方式  
  方法一:   這是因為IIS為英文版本的關係,請使用IIS   4.0中文版(即另外再架一台中文NT   4.0   with   IIS   4.0)。  
  方法二:   在ASP的第一列加上<%@   Language=VBScript   CODEPAGE=950   %>,並且設定欄位為nchar或nvarchar等Unicode欄位型態,同時在insert或query資料時加上N'。  
  方法三:   若舊有的database不方便將欄位型態修改為Unicode的欄位型態,您可以從修改ASP程式解決這個問題。在ASP的第一列加上<%@   Language=VBScript   CODEPAGE=950   %>   可以解決寫入為亂碼的問題,若您需要在同一個ASP讀取中文字,在讀取前加上   Session.Codepage   =   1252,讀取後立刻加上   Session.Codepage   =   950。請遵從上述的修改原則,否則即可能導致您整個頁面變成亂碼。  
   
  Top

24 楼noApple(没有苹果)回复于 2004-08-02 12:48:43 得分 0

好好看看,试好了   就结贴Top

25 楼noApple(没有苹果)回复于 2004-08-02 15:52:41 得分 0

不行不行呀  
  情况是这样的:  
   
  服务器端:  
  Windows   NT   4.0     简体中文版  
  SQL   Server   6.5   英文版   字符集设置是ISO   8859-1  
  ----------------------------  
  客户端   :  
   
  Windows   2000   简单中文版  
  一个PB的应用程序  
  这个PB的应用程序工作很正常  
   
  ----------------------  
  问题是:  
  现在要在原有的系统上,开发一个web统计查询的功能  
  用的是asp,可是我取出的中文字段,全是乱码,不知道怎么回事情?  
  后来我用vb/delphi都尝试过了,都是乱码,所以我很奇怪,为什么那个PB做的软件就可以正确处理乱码呢?  
  Top

26 楼noApple(没有苹果)回复于 2004-08-02 16:44:05 得分 0

upTop

相关问题

  • 中文乱码
  • 中文乱码
  • 中文变乱码
  • jbuilder9中文乱码
  • MySQL中文乱码
  • JButton 中文乱码
  • oracle中文乱码问题
  • *******中文乱码问题,急
  • StreamWriter 写中文会乱码?
  • JSP 关于中文乱码

关键词

  • sp1
  • sql server2000
  • 中文
  • 乱码
  • 应用程序
  • 数据库
  • 中文版
  • 修改
  • 英文版
  • 客户

得分解答快速导航

  • 帖主:noApple
  • wzjcntlqs
  • zheninchangjiang
  • zjcxc
  • j9898

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo