英文操作系统windows2003+英文SQL2005 中文乱码问题

nihao1242 2009-04-11 02:00:22
向数据库增加一条中文记录,在数据库里就会出现????,在页面读出来也是????
页面属性:UTF-8
编码:UTF-8
数据库排序规则为Latin1_General_CI_AS
如何解决?急
...全文
780 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
SunFlower 2011-06-26
  • 打赏
  • 举报
回复
都很厉害,我来学习
fcuandy 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 nihao1242 的回复:]
我已经把排序规则改为Chinese_PRC_CI_AS,通过页面向数据库插入中文,还是乱码,页面读出来也是乱码
[/Quote]

首先:
在之前未改排序规则前,已插入的值,在改为chinese...之后,仍然是乱码, 确定你说的是新插入的值也是???。 这里主要看字段的排序规则。
因为当一个库默认为latin规则后,你建的表,字串类字段,除非特列指定,那么字段排序规则也是latin.
当你更改库的排序规则后,已建的表,字段排序规则不会跟着变,即你把库由latin改为chinese后,原来字段collate为数据库默认即为latin,依然为latin不会自动变为chinese. 这个应该是你的问题所在,所以单纯更改数据库的排序规则是无效的, 它只影响你新建的表字段的默认排序规则设置。

再次:
如果字段采用nvarchar,nchar之类,那么可以不必理会排序规则,但插入时要以N前导。

最后:
确定你的服务器安装了中文字符集。
csdyyr 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 nihao1242 的回复:]
我已经把排序规则改为Chinese_PRC_CI_AS,通过页面向数据库插入中文,还是乱码,页面读出来也是乱码
[/Quote]
字段类型改为nchar、nvarchar 和 ntext ?
rucypli 2009-04-11
  • 打赏
  • 举报
回复
若要使数据库识别 Unicode,除了使用 nchar、nvarchar 和 ntext 数据类型定义 Unicode 存储外,还可以定义识别 Unicode 的客户端交互。可以通过在数据库服务器端执行下列操作来定义识别 Unicode 的客户端交互:

在表列以及 CONVERT() 和 CAST() 操作中,将非 Unicode 数据类型转换为 Unicode 数据类型。


使用 ASCII() 和 CHAR() 函数的 Unicode 等价函数 UNICODE() 和 NCHAR() 来替换它们。


以 Unicode 格式定义存储过程和触发器的变量和参数。


以字母 N 为前缀标识 Unicode 字符串常量。
nihao1242 2009-04-11
  • 打赏
  • 举报
回复
我已经把排序规则改为Chinese_PRC_CI_AS,通过页面向数据库插入中文,还是乱码,页面读出来也是乱码
csdyyr 2009-04-11
  • 打赏
  • 举报
回复
如果ASP支持unicode,应该不用加N。
如果不可以,,试把排序规则改为Chinese_PRC_CI_AS。
nihao1242 2009-04-11
  • 打赏
  • 举报
回复
谢谢大家的回贴,我现在的软件是用ASP开发的,已经开发完毕,如果用这样insert tb(col) select N'中国' 的语句是能够解决,不过这样改起来的话,每个insert语句都得改,有没有其它方法
ws_hgo 2009-04-11
  • 打赏
  • 举报
回复
人齐结贴
ws_hgo 2009-04-11
  • 打赏
  • 举报
回复
unicode编码问题
declare @str varchar(20)
set @str=N'aaaaaaa'
select @str
htl258_Tony 2009-04-11
  • 打赏
  • 举报
回复
if object_id('tb') is not null
drop table tb
go
create table tb(a nvarchar(10)) --1.nvarchar
insert tb select N'中国' --2.N
go

select * from tb
/*
a
----------
中国

(1 行受影响)
*/
csdyyr 2009-04-11
  • 打赏
  • 举报
回复
数据库表字段用nchar,nvarchar类型。
htl258_Tony 2009-04-11
  • 打赏
  • 举报
回复
插入的时候前面加上N

insert tb(col) select N'中国'
windows 记事本的替代品 ■特点: 1 自定义语法高亮,支持HTML, XML, CSS, JavaScript, VBScript, ASP, PHP, CSS, Perl/CGI,C/C++, C#, Java, VB, Pascal, Assembler, SQL, Python, NSIS,INI, REG, INF, BAT, DIFF等众多文件 2 支持ANSI,Unicode,UTF-8等编码互换 3 可以设置无限个书签(9种图标可换)轻松定位 4 空格,制表符彩色显示,并可互相转换 5 可以对任意的文本块进行操作,ALT键+鼠标 6 对括号{}〔〕()可以高亮配对显示,方便查看(仅对英文符号有效) 7 可以自定义代码页和字符集,对中文支持良好 8 使用标准的正则表达式搜索和替换 9 可以使用半透明模式,cool 10 快速放大、缩小页面,不用再设定字体大小 11 可以指定ESC键最小化Notepad2到系统托盘或者关闭Notepad2 ■替换系统记事本的方法: ★如果你的系统是window XP或者windows 2000,那么请先关闭你的系统文件保护,到c:\windows\system32\dllcache 把notepad.exe删除, 然后把Notepad2.exe改名为notepad.exe,分别拷贝到c:\windows 和c:\windows\system32目录下替换原有的notepad.exe记事本程序即可! ★如果你的系统是windows98,那么直接把更名后的Notepad2拷贝到c:\windows和c:\windows\system32目录下替换原有的notepad.exe记事本程序即可! 注:对个别UTF-8编码的中文显示为乱码的解决办法:   文件菜单->编码->默认,勾选“不使用Unicode自动检测”。再次运行即可。   程序的配置信息保存于程序同目录内和程序同名的.ini的文件内。该文件可以手工编辑(不推荐)。   可以手工修改这个配置文件在开头添加: [Notepad2] Notepad2.ini=%WINDIR%\Notepad2-%USERNAME%.ini;系统目录下带用户名 或:Notepad2.ini=%APPDATA%\Notepad2.ini;应用程序目录下 来设置要加载和保存的配置文件的位置,也可以使用绝对路径。
  新云网站内容管理系统是一套开源WEB的网站管理系统,采用网络中已经成熟、稳定地技术ASP+Access/SQL开发而成,通过它,您可以很方便地管理自己的网站。 但是唯一遗憾的是他没有WAP界面适配。现在我们不用担心这些,今天我们可以下载中国被爱可以在线开发的新云WAP适配程序来实现手机访问,配置极其简单。   首先我们要下载新云的适配程序,我们登陆中国被爱可以在线[www.bicyle.org]下载。解压后文件如下,安装包内是QuickWAP的组件程序,需要服务器支持QuickWAP。具体安装步骤为:将QuickWAP.dll拷贝到System32文件夹下,在开始菜单运行 regsvr32 QuickWAP.dll 即可。操作系统Windows 2003、XP装有IIS6或IIS5。如果为虚拟主机,请让服务商协助安装。   新云的网站代码如下,在新云的根目录下新建“WAP”文件夹,然后将新云WAP适配的内容拷贝到WAP文件夹下。   然后我们打开WapConfig目录下的WapConfig.asp,进行相关设置。尤其是要修改XML.MdbPath,用于设置新云WEB网站的相对路径。 <% '设置网站信息。 XML.SiteName="新云网站内容管理系统" '设置网站的名称。 XML.SiteTitle="新云网站内容管理系统" '设置IE浏览时网站的标题。 XML.SiteWebUrl="http://www.bicyle.org" '网站WEB地址 XML.SiteWapUrl="http://wap.bicyle.org" '网站WAP地址 XML.SiteLogo="Images/Logo.jpg" '设置首页的LOGO图片。 CSSFile="Style.css" '设置CSS样式的文件地址。 XML.MdbPath="../Database/newasp.asa" TextLong="1000" '每页字数 '以下为发邮件的信息设置。 XML.MailServerUserName="cnbikeonline@163.com" XML.MailServerPassword="" XML.MailSmtp="smtp.163.com" XML.MailSiteName="新云网站内容管理系统" XML.MailWebUrl="http://www.bicyle.org" XML.MailWapUrl="http://wap.bicyle.org" XML.MailResultFileName="Success.asp" '以下为系统注册序列号。 XML.SoftSerialNumber="" '域名注册码。 XML.IPSerialNumber="61TQ-K5F0-2881-5X8F" 'IP注册码。 XML.CDiskSerialNumber="" 'C盘序列号注册码。 '设置简体繁体 XML.ChineseType="Simple" '设置语言简繁体中文,简体:Simple ,繁体:Complex 'ICPbeian ICPNumber="冀ICP备09012285号" 'ICPbeian号。 %>   设置完毕后,保存即可。这时我们就可以通过你的网站域名,比如为www.bicyle.org,那么WAP访问为www.bicyle.org/wap。或者你可以将wap.bicyle.org域名绑定子目录wap,这样你可以通过wap.bicyle.org访问。   该代码的好处在于WAP完全自动适配WEB新闻内容,过滤掉了其中的HTML代码,因此虽然无法浏览文中的插图,但是不至于手机访问发生错误。另外下载栏目的软件缩略图,是需要AspJpeg组件支持的,QuickWAP内嵌的自动缩略图功能会自动检测是否已经创建了缩略图,如果创建了,则不会重新生成图片,节省了服务器资源。当然如果没有AspJpeg支持,那也不会发生错误。   既然是WAP/WEB同步适配,那么自然WAP是不需要后台的,所有维护是通过新云自带的WEB站来管理的。 关于乱码问题   我们通常会在IE浏览器中打开前台,然后继续登陆后台,这样就会使后台产生乱码。原因在于QuickWAP的所有代码都是基于UTF-8编码方式的,所以在任何浏览器上都不会乱码,但是当在同一浏览器浏览了WAP网页,然后继续打开后台,浏览器依旧保持UTF-8编码方式,这样会造成使用GB2312编码的后台产生乱码。   解决方法是,关闭并重新启动IE浏览器,然后不要打开前台,直接输入后台地址,比如http://wap.bicyle.org/admin。至于WAP页面的浏览最好再下载一款Opera浏览器。这样,Opera专门浏览WAP,IE专门进行WEB管理,从此不会出现乱码现象。   QuickWAP之所以采用UTF-8而非GB2312则是因为UTF-8可以看作是大字符集,它包含了大部分文字的编码。使用UTF-8的最大好处是其他地区的用户(如香港台湾)和国外用户无需安装简体中文支持就能正常观看你的文字而不会出现乱码。
■特点: 1 自定义语法高亮,支持HTML, XML, CSS, JavaScript, VBScript, ASP, PHP, CSS, Perl/CGI,C/C++, C#, Java, VB, Pascal, Assembler, SQL, Python, NSIS,INI, REG, INF, BAT, DIFF等众多文件 2 支持ANSI,Unicode,UTF-8等编码互换 3 可以设置无限个书签(9种图标可换)轻松定位 4 空格,制表符彩色显示,并可互相转换 5 可以对任意的文本块进行操作,ALT键+鼠标 6 对括号{}〔〕()可以高亮配对显示,方便查看(仅对英文符号有效) 7 可以自定义代码页和字符集,对中文支持良好 8 使用标准的正则表达式搜索和替换 9 可以使用半透明模式,cool 10 快速放大、缩小页面,不用再设定字体大小 11 可以指定ESC键最小化Notepad2到系统托盘或者关闭Notepad2 ■替换系统记事本的方法: ★如果你的系统是window XP或者windows 2000,那么请先关闭你的系统文件保护,到c:\windows\system32\dllcache 把notepad.exe删除, 然后把Notepad2.exe改名为notepad.exe,分别拷贝到c:\windows 和c:\windows\system32目录下替换原有的notepad.exe记事本程序即可! ★如果你的系统是windows98,那么直接把更名后的Notepad2拷贝到c:\windows和c:\windows\system32目录下替换原有的notepad.exe记事本程序即可! 注:对个别UTF-8编码的中文显示为乱码的解决办法:   文件菜单->编码->默认,勾选“不使用Unicode自动检测”。再次运行即可。   程序的配置信息保存于程序同目录内和程序同名的.ini的文件内。该文件可以手工编辑(不推荐)。   可以手工修改这个配置文件在开头添加: [Notepad2] Notepad2.ini=%WINDIR%\Notepad2-%USERNAME%.ini;系统目录下带用户名 或:Notepad2.ini=%APPDATA%\Notepad2.ini;应用程序目录下 来设置要加载和保存的配置文件的位置,也可以使用绝对路径。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧