UTF-8页面读数据库中UTF-8数据时 为什么是乱码?

时间:2023-01-05 22:17:21
我的环境是SERVER2000,我从UTF-8页面写入到数据库的时候为什么还是正常的中文,而不是UTF-8的中文乱码 和配置有关系么?

15 个解决方案

#1


nchar
nvarchar
ntext 

如果楼主用的是这几种类型,不管怎么写都是没问题的,因为它们是 Unicode。

#2


数据库是GB的ORACLE数据库
您说只要把字段
设置为nchar
nvarchar
ntext
类型的就可以让UTF-8的JSP插入到数据库中的中文编程UTF-8的乱码?

#3


楼主说 SERVER2000,我还以为是 sqlserver 2000 呢。Oracle 中相应的类型是 NCHAR、NVARCHAR2、NCLOB。

另外我有点看不明白,楼主到底是想要乱码还是不想要乱码?

#4


想要乱码的 也就是UTF-8格式的中文在GBK的数据表中显示 

#5


一般的地球人都是问怎么才能不乱码,楼主的要求好奇怪。:)

楼主讲一下用的什么服务器/配置,我看一下能不能整些乱码出来。

#6


楼主的意思是他认为把UTF-8编码的数据保存到GBK的数据库 中应该是乱码,但是实际上是正常显示的.


unicode编码的用gbk应该是可以正常显示的吧?它们的值映射都是一样的?

#7


楼主的意思是他认为把UTF-8编码的数据保存到GBK的数据库 中应该是乱码,但是实际上是正常显示的.

就是这个意思  呵呵 
环境是WIN2003SERVER TOMCAT4.1 JDK 1.4.2_05 数据库 围GBK的ORACLE数据库
现在这个数据库要入UTF-8的数据 怎么样不需要转换就能正常显示出中文呢

#8


在tomcat中添加字符映射!

#9


JAVA 内部使用的是 Unicode 编码,在进行 I/O 处理时,JAVA 会对本地的文件自动进行编码转换。

我想在向数据库中写时,可能也执行了这种自动转换。因此,一旦楼主在服务器端已经取得了正确编码的字符串,之后再向 Oracle 中写时,就不会出现乱码了。

楼主如果想见到数据库中的乱码,在读取表单参数时,就不应该执行正确的编码转换。

#10


gz

#11


使用string类的构造函数进行编码转换

#12


在tomcat中添加字符映射!
这个什么意思

使用string类的构造函数进行编码转换
现在使用的就是这个方法 不过会出现半字符情况 可能是因为 GBK 和UTF-8码的字节位不一样造成的 

我想在向数据库中写时,可能也执行了这种自动转换。因此,一旦楼主在服务器端已经取得了正确编码的字符串,之后再向 Oracle 中写时,就不会出现乱码了。
就是因为不出现乱码才头疼 我要插入数据库的是UTF-8的中文 也就是乱码 呵呵

#13


楼主在提取表单数据的时候不要进行编码转换,这样提取出来的字符串自然是乱码了,然后直接把它写入数据库就行了,保证能乱。

#14


关键现在有录入 和读出
这样就要 进去 和读出都要转换了 而且 录入的时候 会有转换错误的情况

#15


乱码得问题是头痛呀。。。。。。。。

#1


nchar
nvarchar
ntext 

如果楼主用的是这几种类型,不管怎么写都是没问题的,因为它们是 Unicode。

#2


数据库是GB的ORACLE数据库
您说只要把字段
设置为nchar
nvarchar
ntext
类型的就可以让UTF-8的JSP插入到数据库中的中文编程UTF-8的乱码?

#3


楼主说 SERVER2000,我还以为是 sqlserver 2000 呢。Oracle 中相应的类型是 NCHAR、NVARCHAR2、NCLOB。

另外我有点看不明白,楼主到底是想要乱码还是不想要乱码?

#4


想要乱码的 也就是UTF-8格式的中文在GBK的数据表中显示 

#5


一般的地球人都是问怎么才能不乱码,楼主的要求好奇怪。:)

楼主讲一下用的什么服务器/配置,我看一下能不能整些乱码出来。

#6


楼主的意思是他认为把UTF-8编码的数据保存到GBK的数据库 中应该是乱码,但是实际上是正常显示的.


unicode编码的用gbk应该是可以正常显示的吧?它们的值映射都是一样的?

#7


楼主的意思是他认为把UTF-8编码的数据保存到GBK的数据库 中应该是乱码,但是实际上是正常显示的.

就是这个意思  呵呵 
环境是WIN2003SERVER TOMCAT4.1 JDK 1.4.2_05 数据库 围GBK的ORACLE数据库
现在这个数据库要入UTF-8的数据 怎么样不需要转换就能正常显示出中文呢

#8


在tomcat中添加字符映射!

#9


JAVA 内部使用的是 Unicode 编码,在进行 I/O 处理时,JAVA 会对本地的文件自动进行编码转换。

我想在向数据库中写时,可能也执行了这种自动转换。因此,一旦楼主在服务器端已经取得了正确编码的字符串,之后再向 Oracle 中写时,就不会出现乱码了。

楼主如果想见到数据库中的乱码,在读取表单参数时,就不应该执行正确的编码转换。

#10


gz

#11


使用string类的构造函数进行编码转换

#12


在tomcat中添加字符映射!
这个什么意思

使用string类的构造函数进行编码转换
现在使用的就是这个方法 不过会出现半字符情况 可能是因为 GBK 和UTF-8码的字节位不一样造成的 

我想在向数据库中写时,可能也执行了这种自动转换。因此,一旦楼主在服务器端已经取得了正确编码的字符串,之后再向 Oracle 中写时,就不会出现乱码了。
就是因为不出现乱码才头疼 我要插入数据库的是UTF-8的中文 也就是乱码 呵呵

#13


楼主在提取表单数据的时候不要进行编码转换,这样提取出来的字符串自然是乱码了,然后直接把它写入数据库就行了,保证能乱。

#14


关键现在有录入 和读出
这样就要 进去 和读出都要转换了 而且 录入的时候 会有转换错误的情况

#15


乱码得问题是头痛呀。。。。。。。。