java数据库编码
这是因为:由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。
解决办法是:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java,这下没警告了,运行也正确了在JCreator 4中设置:菜单:Configure --> Options --> JDK Tools --> Compiler,选中,然后选Edit,Parameters里面,最前面添加:-encoding UTF-8。
Parameters原来的
默认值为:-classpath "$[ClassPath]" -d "$[OutputPath]" $[ModJavaFiles]
修改后为:-encoding UTF-8 -classpath "$[ClassPath]" -d "$[OutputPath]" $[ModJavaFiles]
㈡ java 数据库编码,该怎么处理
因为你说的错误并不是很清楚,所以默认你的配置、环境、框架都是正确的。那么最好的解决法就是输出sql语句,这样你就看出来哪错了,估计是单引号的问题。。。哈哈因为我总犯
㈢ java 怎么获取数据库的编码以及配置信息
Java也可以执行Mysql命令,你可以使用sql
语句,如下:
mysql>
SHOW
VARIABLES
LIKE
'%char%set%';
+--------------------------+----------------------------------+
|
Variable_name
|
Value
|
+--------------------------+----------------------------------+
|
character_set_client
|
utf8
|
|
character_set_connection
|
utf8
|
|
character_set_database
|
gbk
|
|
character_set_filesystem
|
binary
|
|
character_set_results
|
utf8
|
|
character_set_server
|
gbk
|
|
character_set_system
|
utf8
|
|
character_sets_dir
|
/u01/mysql/share/mysql/charsets/
|
+--------------------------+----------------------------------+
8
rows
in
set
mysql>
SHOW
VARIABLES
LIKE
'port';
+---------------+-------+
|
Variable_name
|
Value
|
+---------------+-------+
|
port
|
3306
|
+---------------+-------+
1
row
in
set
你如果想获取所有配置信息可以使用:
SHOW
VARIABLES命令。
㈣ JAVA几种常见的编码格式
ASCII 码
学过计算机的人都知道 ASCII 码,总共有 128 个,用一个字节的低 7 位表示,0~31 是控制字符如换行回车删除等;32~126 是打印字符,可以通过键盘输入并且能够显示出来。
ISO-8859-1(扩展ASCII编码)
128 个字符显然是不够用的,于是 ISO 组织在 ASCII 码基础上又制定了一些列标准用来扩展 ASCII 编码,它们是 ISO-8859-1~ISO-8859-15,其中 ISO-8859-1 涵盖了大多数西欧语言字符,所有应用的最广泛。ISO-8859-1 仍然是单字节编码,它总共能表示 256 个字符。
GB2312
它的全称是《信息交换用汉字编码字符集 基本集》,它是双字节编码,总的编码范围是 A1-F7,其中从 A1-A9 是符号区,总共包含 682 个符号,从 B0-F7 是汉字区,包含 6763 个汉字。
GBK(扩展GB2312)
全称叫《汉字内码扩展规范》,是国家技术监督局为 windows95 所制定的新的汉字内码规范,它的出现是为了扩展 GB2312,加入更多的汉字,它的编码范围是 8140~FEFE(去掉 XX7F)总共有 23940 个码位,它能表示 21003 个汉字,它的编码是和 GB2312 兼容的,也就是说用 GB2312 编码的汉字可以用 GBK 来解码,并且不会有乱码。
GB18030(兼容GB2312)
全称是《信息交换用汉字编码字符集》,是我国的强制标准,它可能是单字节、双字节或者四字节编码,它的编码与 GB2312 编码兼容,这个虽然是国家标准,但是实际应用系统中使用的并不广泛。
Unicode编码集
UTF-16 统一采用两个字节表示一个字符,虽然在表示上非常简单方便,但是也有其缺点,有很大一部分字符用一个字节就可以表示的现在要两个字节表示,存储空间放大了一倍,在现在的网络带宽还非常有限的今天,这样会增大网络传输的流量,而且也没必要。而 UTF-8 采用了一种变长技术,每个编码区域有不同的字码长度。不同类型的字符可以是由 1~6 个字节组成。
UTF-8 有以下编码规则:
UTF-16 具体定义了 Unicode 字符在计算机中存取方法。UTF-16 用两个字节来表示 Unicode 转化格式,这个是定长的表示方法,不论什么字符都可以用两个字节表示,两个字节是 16 个 bit,所以叫 UTF-16。UTF-16 表示字符非常方便,每两个字节表示一个字符,这个在字符串操作时就大大简化了操作,这也是 Java 以 UTF-16 作为内存的字符存储格式的一个很重要的原因。
ISO 试图想创建一个全新的超语言字典,世界上所有的语言都可以通过这本字典来相互翻译。可想而知这个字典是多么的复杂,关于 Unicode 的详细规范可以参考相应文档。Unicode 是 Java 和 XML 的基础,下面详细介绍 Unicode 在计算机中的存储形式。
UTF-16
UTF-8
如果一个字节,最高位(第 8 位)为 0,表示这是一个 ASCII 字符(00 - 7F)。可见,所有 ASCII 编码已经是 UTF-8 了。
如果一个字节,以 11 开头,连续的 1 的个数暗示这个字符的字节数,例如:110xxxxx 代表它是双字节 UTF-8 字符的首字节。
如果一个字节,以 10 开始,表示它不是首字节,需要向前查找才能得到当前字符的首字节
详情传送门至:网页链接
㈤ java数据库中文乱码怎么解决
原因1:mysql数据库中的数据本身就是乱码
解决方案:
设置mysql编码格式
<1>
停掉mysql服务
net
stop
mysql
<2>查询mysql编码格式
mysql>
show
variables
like
'character_set_%';
<3>默认就是瑞典latin1,换成自己的编码,如utf8【gbk】
mysql>set
names
'utf8';
【一般在访问之前执行这个代码就解决问题了】
【它相当于下面的三句指令:】
【set
character_set_client
=
utf8;】
【set
character_set_results
=
utf8;】
【set
character_set_connection
=
utf8;】
<3>
启动mysql服务
net
start
mysql
<4>
验证编码是否正确修改
mysql>
show
variables
like
'character_set_%';
㈥ java web程序与数据库字符编码问题
那就把jsp和servlet编码设置为utf-8,一劳永逸
-------------------
楼上的,这样试试
char c = '4';
int i = Character.getNumericValue(c);
㈦ JAVA中修改数据库的编码方式的代码是什么
以改成utf-8为例:
alter database 数据库名 character set utf-8;
㈧ java中显示数据库内容时,关于中文的是乱码,我已经把两种编码都设为了UTF-8,但是还是显示不了。跪求高手
java使用中文用的的是Unicode,不是udf8,你仅是将网页和数据库编码设置为UDF8是没有用的
本来用udf8表示中文就是一堆乱码的,
取出显示时需要重新转换。