sybase cp850 生僻汉字解决办法
SYBASE数据库字符集问题
SYBASE数据库字符集问题最近做一个项目,需要使用SYBASE数据库。
基本功能就是从SYBASE中读取信息在页面显示。
页面字符集是UTF-8SYBASE默认字符集是 ENCGB本来功能是正常的。
最近发现一个问题,在数据库中保存一些生僻字后,如果直接用isql在SYBASE数据库里写是可以正常保存的。
例如:喆,在数据库里保存是正常的。
但是通过JDBC连接数据库,读出来的却是“?”连接数据库的URL是这样写的。
jdbc:sybase:Tds:localhost:5007/myDB?charset=cp936普通汉字都可以正常的进行读写,只有那些生僻字无法显示。
SYBASE数据库中也添加了cp936字符集。
但是还是无法正常读写生僻汉字。
数据库的默认字符集不允许改为“CP936”,所以只能在连接字符串上添加字符集CP936大家有没有遇到过这种问题。
通过JDBC连接SYBASE获取的结果是什么字符集的呢?可以在读写的时候对字符串的编码进行转换吗?问题补充dong706gmail 写道你的问题我也碰到过,一开始设置的连接字符集是utf-8,结果读取不了生僻字。
把连接字符集设置为 gb18030 就可以了。
String url ="jdbc:sybase:Tds:10.25.36.21:4100?charset=gb18030";连接字符设置为GB18030后,直接报错ava.sql.SQLException: JZ0I5: 指定了一个无法识别的CHARSET 属性: gb18030。
atcom.sybase.jdbc3.jdbc.ErrorMessage.raiseError(ErrorMessage.jav a:552)at com.sybase.jdbc3.tds.Tds.setCharConvert(Tds.java:3208) at com.sybase.jdbc3.tds.Tds.setCharConvert(Tds.java:3158) at com.sybase.jdbc3.tds.Tds.login(Tds.java:413)atcom.sybase.jdbc3.jdbc.SybConnection.tryLogin(SybConnection.j ava:247)atcom.sybase.jdbc3.jdbc.SybConnection.regularConnect(SybConn ection.java。
JavaJDBC连接Sybase数据库中文乱码问题
JavaJDBC连接Sybase数据库中文乱码问题Java JDBC 连接Sybase数据库中文乱码问题例子:环境MyEclipse Blue Edition 10sybase11jdbc驱动jconn3.jarjava代码:import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;public class ChaXun {public static void main(String[] args) {Connection conn = null;String user = "XXX";String passwd = "XXXXXXXX";try {Class.forName("com.sybase.jdbc3.jdbc.SybDriver").newInsta nce();String url = "jdbc:sybase:Tds:XXX.XXX.XXX.XXX:XXXX/XXXX_db";conn = DriverManager.getConnection(url+"?user="+user+"&password ="+passwd);if(conn == null){System.out.println("连接数据库失败");}else{System.out.println("连接数据库成功");Statement stmt=conn.createStatement();String sql="SELECT yhid,yhmc,yhmm FROM XXXXXX"; // 生成sql语句ResultSet rs=stmt.executeQuery(sql); // 执行sql语句int id;String username,pwd;System.out.println("id\t用户名\t密码");while(rs.next()){id=rs.getInt("yhid");username=rs.getString("yhmc");pwd=rs.getString("yhmm");System.out.println(id+"\t"+username+"\t"+pwd); // 输入查询结果}stmt.close();conn.close();}} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (InstantiationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}运行这个代码后发现输出中文字段全是乱码最后在修改conn = DriverManager.getConnection(url+"?user="+user+"&password ="+passwd);为conn = DriverManager.getConnection(url+"?user="+user+"&password ="+passwd+"&charset=cp936");显示正常。
银行信息系统生僻汉字处理方法
银行信息系统生僻汉字处理方法毛淑平【摘要】@@ 网点柜员在办理业务时,经常会出现一些系统中不存在或不能处理的汉字,影响业务的开展.特别是在过去软硬件系统比较陈旧的情况下,会出现生僻字无法输入和打印的状况.对信息系统而言,汉字生僻字是指系统软、硬件环境不能够支持的汉字.本文所指的生僻字是指GBK字符集范围之外的汉字字符.【期刊名称】《中国金融电脑》【年(卷),期】2010(000)005【总页数】4页(P59-62)【作者】毛淑平【作者单位】中国工商银行股份有限公司软件开发中心【正文语种】中文网点柜员在办理业务时,经常会出现一些系统中不存在或不能处理的汉字,影响业务的开展。
特别是在过去软硬件系统比较陈旧的情况下,会出现生僻字无法输入和打印的状况。
对信息系统而言,汉字生僻字是指系统软、硬件环境不能够支持的汉字。
本文所指的生僻字是指GBK字符集范围之外的汉字字符。
一、字符集概述1.GB2312编码字符集1980年的GB2312-1980一共收录了7445个字符,包括6763个汉字和682个其他符号。
汉字区的内码范围高字节从B0-F7开始,低字节从A1-FE开始,占用的码位是72×94=6768。
其中有5个空位是D7FA-D7FE。
GB2312-1980,选入了6763个汉字,分为两级,一级字库中有3755个,是常用汉字,二级字库中有3008个,是次常用汉字;另外,还选入了682个字符,包含有数字、一般符号、拉丁字母、日文假名、希文字母、俄文字母、拼音符号、注音字母等。
2.GB13000-90(GBK)国际标准化组织为了将世界各民族的文字进行统一编码,制定了UCS标准。
根据这一标准,中、日、韩三国共同制定了《CJK统一汉字编码字符集》,其国际标准号为ISO/IEC10646,国家标准号为GB13000-90,该汉字编码字符集就是通常人们所说的大字符集,它编入了20902个汉字,收集了大陆一二级字库中的简体字,台湾地区《通用汉字标准交换码》中的繁体字,58个香港地区特别用字和92个延边地区朝鲜族“吏读”字,甚至涵盖了日文与韩文中的通用汉字,满足了方方面面的需要。
如何解决Sybase数据库乱码问题详解
如何解决Sybase数据库乱码问题详解搭建测试数据库服务器时,遇到了乱码问题,之前没有遇到是因为开发数据库服务器是早就安装好并设置好字符集的,因此些问题在部署测试环境时才出现,当时已经将数据库配置完毕,并且所有的初始化脚本都已经执行完毕,工程也已经成功部署在WebLogic上,打开IE,运行程序,却发现所有从数据库中读取出来的都是乱码,经过上网搜索的相关资料,需要设置字符集,但刚开始查找到的资料基本是都是支言片语,没有一个系统的讲解如何设置字符集,几乎将他们所有的方法都试过了,结果不但没有弄好,甚至连控制台和SQL平台都是乱码了,实在弄不明白了,就去问高人了,他给我发了一个专门讲解字符集的文档,讲的很全面,而且通过他的帮忙终于将解决了乱码问题。
下面我总结一下设置字符集的过程:1、安装完Sybase后,如果要想设置字符集为CP936,就必须先安装该字符集,因为Sybase默认的字符集表中并没有该字符集,安装步骤如下:(这里 SYBASE 的安装路径为c:\sybase) 1.c:\>;cd \sybase\charsets\cp9362.c:\sybase\charsets\cp936>; charset -Usa -Psa_pass -Sserver_name binary.srt cp936通过上述命令就成功将CP936字符集安装表Sybase的系统字符集表中,但必须重启Sybase服务两次才能看到结果,可以通过查看 master 数据库中的syscharsets表查看是否已经安装成功,我们可以看到已经安装成功了:1002,171,0,1,'cp936', 'CP936 (Simplified Chinese).',’…’2、看到CP936的编号为171,我们需要在Sybase的属性中设置系统字符集为该ID,如下图所示:如果设置完字符集成出现错误,是因为master数据库的表空间默认只分配几百K的空间,导入新的数据后已经没有足够的空间了,所以要对master数据库设置大一些的表空间,点击master数据库右键属性,选择表空间的tab页,对原有的表空间编辑重新分配大小,将master所有的表空间都分配了就可以解决该问题。
Sybase问题集整理
Sybase数据库问题集整理1.ASE12.5.4服务器默认字符集为utf8,默认语言为中文,客户端使用字符集utf8连接时汉字出现乱码问题解决方法:将客户端的连接字符集指定为cp9362.ASE15.0.3在windows 2003 server x64上安装进行到配置服务时,配置self manage的用户名和密码分别为job_user/job_user,服务创建时出错,报:创建自管理的用户或登录失败解决方法:仅在测试环境上发现此问题。
暂时解决方法,配置自管理的用户名为sa,密码为默认的空3.用server config图形工具欲将系统默认字符集配置为cp936,添加字符集的可用字符集列表中没有cp936解决方法:手动添加cp936字符集。
cd %sybase%\charsetscharset –Usa –P –Sservername binary.srt cp936然后通过系统存储过程sp_configure 将参数:default character set id 调整成cp936的id,可能为171,需要查询select id,name from master..syscharsets where name=’cp936’重启ASE两遍后,字符集就调整好了。
4.在windows 2008 R2上安装ASE15.0.3ESD#1时,不能创建主服务、备份服务等。
提示无法执行二进制程序sqlsrvr.exe等。
原因:此为操作系统兼容问题!错误信息见文件:windows2008R2-install-error.txt解决方法:先安装ASE15.0.3ESD#1,先不创建数据库服务,将程序升级到ASE15.0.3ESD#3(或者目前最新的ESD#4),然后再创建数据库服务。
另外,ASE15.5在windows2008R2上不存在兼容问题。
5.不能执行远程服务器上的命令,如: SYB_BACKUP…sp_who等。
SYBASE常见问题
SYBASE常见问题1.Sybase数据库日志满碰到这种情况,常会出现能查询数据,但无法更新数据,启动事务等。
在代码中跟踪可以发现,连接能够打开,但事务却无法开启。
常会提示“Connection to Sybase server has been lost. All active transactions have been rollbacked”的错误信息。
解决办法:若是开发数据库,则直接清除日志即可。
若是正式数据库:建议备份当前日志再清空日志,扩日志设备及日志数据库。
清空日志的语句为『dump transaction database_name with no_log 』2.Sybase中文乱码出现这种情况的原因是sybase的服务器字符集不支持中文或是客户端的字符集与服务端字符集不一致。
可以考虑更改sybase的默认字符集。
在Sybase12.5的版本中支持中文的字符集有CP936、EUCGB、UTF-8和GB18030。
这里我们针对Sybase 服务器字符集不支持中文给出解决办法:解决办法(安装cp936字符集):假设sybase的安装路径为"D:\Sybase"。
(1)D:\>cd \sybase\charsets\cp936(2) D:\sybase\charsets\cp936> charset -Usa -Psa_pass -Sserver_name binary.srt cp936(3) 在InterActiveSQL中执行『select name,id from syscharsets』,需注意的是这里要选择在“master”数据库下执行,第4步也是。
找到name为cp936的ID,假定是171。
(4)在InterActiveSQL中执行『sp_configure 'default character set id',171』(5) 重启Sybase服务两次。
一招搞定生僻汉字的输入
一招搞定生僻汉字的输入在通过各种中文输入法进行汉字录入时,经常会遇到一些生僻的汉字,特别是录入人名、地名和古籍时,如镕、喆、旸、珺、芃、翀等,就显的非常棘手。
下面介绍一招搞定生僻汉字输入的方法,这里不需要安装硬件(如手写板),不需要借助软件(如五花八门的输入法),也不需要知道这个汉字的读音,只要是一台能上网的电脑,只要有鼠标,就能迅速搞定任何一个生僻汉字的输入,不管是只有一画的“乁”字,还是笔画最多的“龘”字。
百度刚推出的手写输入法,在解决生僻汉字输入问题上非常便捷有效,进一步诠释了“简单可依赖”的百度特色。
手写输入法其实是为不熟悉拼音以及老人、残障人士等各种不方便使用键盘的用户设计的,在百度老年搜索频道(/)很早就已采用。
遇到生僻汉字时,您可能这时是在聊天,可能是在使用Word编辑排版,也可能是在使用其他软件需要进行文字录入。
不管您在做什么工作,只要按以下步骤操作后,使用选择、复制、粘贴的方法即可完成生僻汉字的输入。
具体操作步骤如下:1.打开浏览器,进入百度首页()(如图1)。
2.点击百度搜索框右侧的链接,选择方式。
3.单击链接(如图2),打开手写面板。
4.用按住鼠标左键拖动的方式在手写板中写字(如图3),每次限写一个字。
从右侧选择确定您想输入的生僻汉字,选择的字便显示在百度搜索框中,输入工作即已成功。
当选择确定您想输入的汉字后,会在写字板右侧为您自动反馈常用的联想词,在百度搜索框下面也同时显示常用的联想词或句子。
说明:百度在线输入法又称作百度云输入法。
分为拼音输入法和手写输入法。
可以应用于Google Chrome浏览器、搜狗高速浏览器、傲游浏览器等主流浏览器上。
但使用方法略有差异:IE与Firefox中启用在线拼音输入法后桌面输入法被屏蔽,在线拼音输入法可以直接使用;但在其他浏览器中启用百度在线输入法后需要先关闭桌面输入法,将输入法状态调至英文输入状态时才能使用百度在线拼音输入法。
借助强大的中文识别能力、丰富的词条联想功能以及百度搜索自带的关键词联想功能,任何不懂中文输入法的用户不用再借助手写板等辅助工具也可流畅完成任何生僻汉字的录入,而且使用该功能不需要安装任何网页插件,直接调用即可。
一招搞定生僻汉字的输入
- -/2011.11/一招搞定生僻汉字的输入仙桃职业学院 郭 萍在通过各种中文输入法进行汉字录入时,经常会遇到一些生僻的汉字,特别是录入人名、地名和古籍时,如镕、喆、旸、珺、芃、翀等,就显的非常棘手。
下面介绍一招搞定生僻汉字输入的方法,这里不需要安装硬件(如手写板),不需要借助软件(如五花八门的输入法),也不需要知道这个汉字的读音,只要是一台能上网的电脑,只要有鼠标,就能迅速搞定任何一个生僻汉字的输入,不管是只有一画的“乁”字,还是笔画最多的“龘”字。
百度刚推出的手写输入法,在解决生僻汉字输入问题上非常便捷有效,进一步诠释了“简单可依赖”的百度特色。
手写输入法其实是为不熟悉拼音以及老人、残障人士等各种不方便使用键盘的用户设计的,在百度老年搜索频道(/)很早就已采用。
遇到生僻汉字时,您可能这时是在聊天,可能是在使用Word编辑排版,也可能是在使用其他软件需要进行文字录入。
不管您在做什么工作,只要按以下步骤操作后,使用选择、复制、粘贴的方法即可完成生僻汉字的输入。
具体操作步骤如下:1.打开浏览器,进入百度首页()(如图1)。
2.点击百度搜索框右侧的链接,选择方式。
3.单击链接(如图2),打开手写面板。
4.用按住鼠标左键拖动的方式在手写板中写字(如图3),每次限写一个字。
从右侧选择确定您想输入的生僻汉字,选择的字便显示在百度搜索框中,输入工作即已成功。
当选择确定您想输入的汉字后,会在写字板右侧为您自动反馈常用的联想词,在百度搜索框下面也同时显示常用的联想词或句子。
说明:百度在线输入法又称作百度云输入法。
分为拼音输入法和手写输入法。
可以应用于Google Chrome浏览器、搜狗高速浏览器、傲游浏览器等主流浏览器上。
但使用方法略有差异:IE与Firefox 中启用在线拼音输入法后桌面输入法被屏蔽,在线拼音输入法可以直接使用;但在其他浏览器中启用百度在线输入法后需要先关闭桌面输入法,将输入法状态调至英文输入状态时才能使用百度在线拼音输入法。
基于Sybase应用系统中涉及字符集问题的解决方案
406 3 0 8)
摘 要: 本文首先提 出了在 I S RI 2环境 FS b s y a e应用系统 中的常见字符集 问题。紧接着 ,结 合这些问题 ,简单地 介绍了一些 系统字 符集的基础知识 ,包 括字符集的定 义,选择和转换 。然后利用选择 和转换规则结 合实际系统 中的应用情况 ,从 中远集运 各个系统开发 过程 中碰 到的字符集问题出发 ,归纳总结 了常见的几类问题并加以 详细解析 ,利 用在实际项 目中实践 经验 ,对此几类问题进行 了讨论 , 并 给出 了不 同的解决方案 。最后 ,从 I S2系统现 状出 发 ,对 I S2系统 中字 符集使 用现状进 行总结 。 RI RI 关键词 :RI2环境 字符集 解决方案 I S 中图分类号 : P3 T 文献标识码 : A 文章编号 :6 2 7 l2 0 ) 1 ) 0 0 0 l 7 —3 9 (0 6 1( ~ 0 2 2 a
使用 S b s S y ae A E客户端 连接 A E数据 S 库( 数据库字符集为 H o n ) 、写中文 P R ma S读 均为乱码 。 我们 常见 的乱码 大致 有如 下几 种情 形 : 1 汉 字 变成 了 问号 “ ” ) ? 2 有的 汉字显示正 确 ,有的 则显示错 误 ) 3 显示 乱码( ) 有些是汉字但 并不是你预 期
作 系统 。 Lai (S 8 9 1f r tn1 1 08 5 )o UNI 操 作 系 x 统。 I BM EBC C DI US E g ih (B 0 7 nl s IM 3 ) f r an r me系 统 。 o m i fa
4 读 写数据库 出现 乱码 ) 使用 S b s E客户端 访问 AS y ae AS E数据 库时发 现只能取 出部分 汉字( 数据库字符 集为 HP— ma ) Ro n8 比较 典 型的 如 下例 子 : 1对于 v r h r 0 的字段原 来的输入 4 ) aca( ) 4 个汉 字 ,现 在 输 出只 有 3 个 。 Jv 程序或应用服务 器中使 用通过 J B aa D C 连接 S b s AS y ae E数据库读 、写 中文均 为乱
MySQL生僻字(不常用字)的完整解决方案
MySQL⽣僻字(不常⽤字)的完整解决⽅案查看 MySQL 数据库服务器和数据库字符集show variables like '%char%';查看 MySQL 数据表(table)的字符集show table status from sqlstudy_db like '%countries%';查看 MySQL 数据列(column)的字符集show full columns from countries;查看当前安装的 MySQL 所⽀持的字符集show charset;show char set;MySQL的字符编码设置可以划分为三个层次,依据具体情况可以在数据库、数据表和字段三个级别进⾏实验:SET utf8 COLLATE utf8_general_ciSET gbk COLLATE gbk_chinese_ci1、MySQL数据库字符编码全局设置;语句:ALTER DATABASE `数据库名` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci2、MySQL数据表字符编码设置;语句:ALTER TABLE `表名` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci3、MySQL数据表字段字符编码设置;语句:ALTER TABLE `表名` CHANGE `字段名` `字段名` 字段类型(长度) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL注意:请在执⾏查询之前,执⾏:SET NAMES gbk//////////////////////////////////////////////////////////////////////第⼀次采⽤MySQL作为业务应⽤的数据库,由于经验不够丰富,在安装数据库的时候选择了GB2312编码。
Sybase 中文乱码解决办法
Sybase 中文乱码解决办法解决Sybase中文问题(/kingspider/)(/u/1163490885)1. JDBC连接串要有字符集设置修改proxool.xml这个文件jdbc:sybase:Tds:192.168.3.11:5000/dbserver?charset=cp936 然后在sybase设备中创建数据库dbserver2. 服务器配置成cp936(1) 使用isql查看当前已经安装的字符集isql -Usa -Plongtop>use master>go>select id,name from syscharsets>goid name--- ----------------0 ascii_81 iso_12 cp85020 defaultml21 thaidict22 iso1465124 utf8bin25 binary39 altnoacc45 altdict46 altnocsp47 scandict48 scannocp50 bin_iso_150 bin_cp85051 dict52 nocase53 nocasep54 noaccent55 espdict56 espnocs57 espnoac59 rusnocs64 cyrnocs65 elldict69 hundict70 hunnoac71 hunnocs73 turknoac74 turknocs129 cp932bin130 dynix137 gb2312bn140 cyrdict155 turdict161 euckscbn163 gbpinyin165 rusdict179 sjisbin192 eucjisbn194 big5bin(41 rows affected)从列表中看出没有安装cp936字符集(2) 查看当前使用的缺省字符集>sp_configure "default char">goParameter Name Default Memory Used Config Value Run Value Unit Type------------------------------ ----------- ----------- ------------ ----------- -------------------- ----------default character set id 2 0 2 2 id static缺省字符集的id是2,查看上面的列表,可以得知是cp850(3) 因为上面的列表中没有安装cp936,所以就安装cp936字符集进入目录C:\sybase\charsets\cp936运行命令 charset -Usa -P –SDELL binary.srt cp936运行完成后,系统就安装了cp936字符集(4) 验证是否确实安装了cp936字符集isql -Usa -Plongtop>use master>go>select id,name from syscharsets>goid name--- ------------------------------0 ascii_81 iso_12 cp85020 defaultml21 thaidict22 iso1465124 utf8bin25 binary39 altnoacc45 altdict46 altnocsp47 scandict48 scannocp50 bin_iso_150 bin_cp85050 bin_cp93651 dict52 nocase53 nocasep54 noaccent55 espdict56 espnocs57 espnoac59 rusnocs64 cyrnocs65 elldict69 hundict70 hunnoac71 hunnocs73 turknoac74 turknocs129 cp932bin130 dynix137 gb2312bn140 cyrdict155 turdict161 euckscbn163 gbpinyin165 rusdict171 cp936179 sjisbin192 eucjisbn194 big5bin(43 rows affected)从列表中可以发现已经安装了cp936,id是171(5) 把系统的当前缺省字符集设置为cp936>sp_configure "default char",171>goIn changing the default sort order, you have also reconfigured SQL Server'sdefault character set.Parameter Name Default Memory Used Config Value Run Value Unit Type------------------------------ ----------- ----------- ------------ ----------- -------------------- ----------default character set id 2 0 171 2 id static(1 row affected)Configuration option changed. Since the option is static, Adaptive Server mustbe rebooted in order for the change to take effect.Changing the value of 'default character set id' to '171' increases the amountof memory ASE uses by 6 K.(return status = 0)然后在刚刚创建的数据库dbserver中建立表和初始数据,进行完这一步即可,无需重启服务。
生僻字打不出来怎么办
生僻字打不出来怎么办在我们日常的书写和文字交流中,偶尔会遇到一些生僻字,这些字往往不常用,因而在打字的时候可能会遇到一些困难。
今天我们就来探讨一下当我们遇到生僻字打不出来时应该怎么办。
首先,当我们遇到无法打出的生僻字时,可以考虑使用其他常见字进行替代。
因为生僻字往往是由很多复杂的部首和笔画组成,因此替代字往往是一个比较实际的选择。
我们可以通过查询网络或者字典来找到一个与生僻字发音或意思相近的常用字,将其替代原生僻字进行使用。
其次,当替代字没有办法使用时,我们还可以通过输入法的「部首查字」功能来输入生僻字。
现在的输入法普遍都会提供这样的功能,我们只需要根据生僻字的部首来查找对应的字形,并进行选择输入即可。
这种方法需要一些基本的汉字输入法知识,但是只要熟悉了常用的部首,就能较为轻松地输入生僻字。
此外,我们还可以利用笔画输入法来输入生僻字。
笔画输入法是一种通过输入字的笔画来输入汉字的方法。
我们可以根据生僻字的笔画顺序,使用鼠标或触摸屏进行书写,并将所写的笔画匹配到对应的生僻字上。
虽然这种方法会稍微麻烦一些,但是对于那些不常用的生僻字来说,这是一个非常实用的方法。
另外,对于有一定编程基础的人来说,我们还可以通过编写脚本来输入生僻字。
我们可以利用编程语言中的字符编码来输入一个生僻字,并将其保存为一个脚本或程序。
这样,我们每次需要输入这个生僻字的时候,只需要运行这个脚本或程序,就能够将生僻字输入到我们想要的地方。
最后,如果以上方法都无法解决问题,我们还可以考虑手写输入。
现在很多设备都支持手写输入,我们可以使用手写笔或触摸屏来直接书写生僻字,然后将其转化为文字。
虽然这种方法可能会有一些不便,但是对于那些特殊的生僻字来说,这是一个相对可行的方法。
总的来说,当我们遇到生僻字打不出来的情况时,我们可以尝试使用其他常用字进行替代,或者通过输入法的「部首查字」功能进行输入,又或者利用笔画输入法、编写脚本或手写输入等方法来解决问题。
解决sybase数据库中文乱码
存储过程和触发器)中文字符在软件内显示为乱排错等工作因数据库的字符集进行修改。
(中文字符,解决english”。
且在长达数年的实际使用中,并未有ERP系统的最终用户反应中文存在乱码的问题。
为进一步确定数据库中图1 Sybase Central查询结果中显示乱码Trouble Shooting在简体中文版本的Windows操作系统上,通过在命令行中输入命令“chcp”,即可得知系统的“中文(中国)”区域设置,对应的页码(字符集)为936(GBK)。
因此,在本案例中,笔者选用CP936作为Sybase开放客户格式提供言环境信information)”,(Open Client)图2 客户端的locales.dat文件原配置图3 修改后的配置图4 客户端的locales.dat文件原配置量对于运上的Sybase意义。
(在其他操作系统平台上亦可能存在图5 根据“$LANG”修改后的配置图6 Sybase Central v6.0中设置连接1>s p_c o n f i g u r e"e n a b l e u n i c o d econversions", 02> go完成上述配置后,再使用Sybase Central浏览数据库中的内容,即可发现中文字符已经可以正常显示了。
同时,在SQL Advantage(或Interactive SQL)、iSQL等工具中使用中文字符进行查询,亦可得到正确的查询图7 使用iSQL等工具连接数据库出现错误消息。
信息系统支持生僻字升级改造指南
信息系统支持生僻字升级改造指南升级改造一个信息系统以支持使用生僻字需要考虑以下几个方面:1. 字体资源:生僻字往往不包含在常见字体库中,因此需要收集和准备包含这些生僻字的字体资源文件。
可以考虑购买商业字体库或者与相关机构合作获取需要的字体资源。
2. 字符编码:生僻字可能不在常见字符编码范围内,需要确保系统能正确处理这些字符编码。
检查系统的字符编码设置,确认是否支持包含生僻字的字符编码标准,如Unicode等。
3. 数据库支持:如果系统使用数据库存储数据,需要确认数据库的字符编码设置是否支持生僻字。
如果不支持,需要进行相应的字符编码转换和配置调整。
4. 输入法支持:用户在输入生僻字时,可能需要使用特定的输入法进行输入。
确保系统支持并能正确处理这些输入法,以便用户能够顺利输入生僻字。
5. 显示支持:系统的界面和显示方式需要支持生僻字的显示。
检查系统的UI组件和界面布局,确保能正确显示生僻字,并不会出现字体错位、乱码等问题。
6. 数据验证和检索:对于包含生僻字的数据,系统需要能正确进行数据验证和检索。
确保系统能正确处理生僻字输入的数据,并保证数据的准确性和完整性。
7. 兼容性测试:在进行升级改造后,需要进行充分的兼容性测试,确保系统在不同平台、设备和环境下正常运行,并能正确处理生僻字。
8. 用户培训:对于系统用户,特别是那些需要经常使用生僻字的用户,需要提供相应的培训和指导,以便他们正确使用系统功能,输入和处理生僻字。
综上所述,升级改造一个信息系统以支持使用生僻字需要涉及字体资源、字符编码、数据库支持、输入法支持、显示支持、数据验证和检索、兼容性测试以及用户培训等方面的工作。
这些工作需要系统管理员和开发人员共同合作完成,并且需要充分考虑用户需求和系统安全性。
sybase修改字符集
Sybase数据库进入isql模式:在dos界面中输入:isql –Usa –P111111 –Szhouyx分别代表用户名密码服务器名修改字符集Sybase修改字符集(cp850 to cp936)最重要的命令是:C:\sybase\charsets \cp936>charset -Usa -Psybase -Sdiren binary.srt cp936新中大软件字符集转换为cp936技术说明一、为什么要修改现在使用的数据库的字符集?安装ASE数据库默认的字符集为CP850,其对于中文的字符集(GB2312)比较少,很多汉字无法保存,导致在备份恢复时出错。
二、替换数据库字符集比较好的时间是什么时候?建议在业务不繁忙进行该项工作。
三、确认修改数据库字符集的时间后,你的重要工作是什么?注意:全部备份你的数据库,并且你要确保你的备份是有效的。
四、修改数据库字符集的整个思路是什么?1、确认服务器停止对外服务前,完整地备份你的数据库。
2、将原来cp850或iso-1字符集的数据库数据bcp out到你指定的文件目录下。
3、重新构造你的服务器,配置你的服务器字符集为cp936。
4、重新建立并规划你的数据库。
5、将bcp out出来的数据bcp in 到新的数据库里(该数据库的字符集环境为cp936)。
6、修改并配合应用程序使其能够正常运行。
确保对客户端最小化影响。
五、修改的操作步骤以下假设:Sybase server 名:asesrv (在Dsedit中设置)Sybase sa的口令:sybase生产库名:test操作的目录:d:\shen建议:按照以上假设,只需要将所有的生产库名test替换成你的生产库名字!1、停止数据库服务器对外服务,注意并不是停止你的服务器的服务。
检查一下master库的大小,不能小于40M。
2、备份你的数据库,注意是全部备份。
建议你将你的数据库做一次DBCC。
1>dump database test to “d:\shen\test.dmp”2>go3、生成批处理文件3.1 生成用户表BCP OUT批处理文件bcpout.bat3.1.1 修改bcpout.txt文件,使其符合你的实际情况,bcpout.txt文件内容为:select 'bcp test..' + name + ' out ' + '"' + 'd:\shen\' + name + '.dat' + '"' + ' -c -Usa -Psybase -Sasesrv' from sysobjects where type='U' order by namego3.1.2 在DOS命令下执行以下命令:? d:\ren\>isql -U sa -Psybase -Sasesrv -Dtest -ibcpout.txt -obcpout.bat3.1.3 编辑结果文件bcpout.bat,将开头和结尾多余部分去掉,并查找到“GG_XTHP”,将该行删除(系统帮助表,因为包含有Text字段不能正常bcp in/out)。
mysql解决生僻字,特殊字符插入失败
mysql解决⽣僻字,特殊字符插⼊失败MySQL 的 utf8 实际上不是真正的 UTF-8。
utf8 只⽀持每个字符最多三个字节,⽽真正的 UTF-8 是每个字符最多四个字节。
MySQL ⼀直没有修复这个 bug,他们在 2010 年发布了⼀个叫作 utf8mb4 的字符集,绕过了这个问题。
当然,他们并没有对新的字符集⼴⽽告之(可能是因为这个 bug 让他们觉得很尴尬),以致于现在⽹络上仍然在建议开发者使⽤ utf8,但这些建议都是错误的。
简单概括如下:MySQL 的 utf8mb4 是真正的 UTF-8。
MySQL 的 utf8 是⼀种专属的编码,它能够编码的 Unicode 字符并不多。
所有在使⽤ utf8 的 MySQL 和 MariaDB ⽤户都应该改⽤ utf8mb4,永远都不要再使⽤ utf8。
为什么会有UTF8MB4?既然utf8应付⽇常使⽤完全没有问题,那为什么还要使⽤utf8mb4呢? 低版本的MySQL⽀持的utf8编码,最⼤字符长度为 3 字节,如果遇到 4 字节的字符就会出现错误了。
三个字节的 UTF-8 最⼤能编码的 Unicode 字符是 0xFFFF,也就是 Unicode 中的基本多⽂平⾯(BMP)。
也就是说,任何不在基本多⽂平⾯的 Unicode字符,都⽆法使⽤MySQL原有的 utf8 字符集存储。
这些不在BMP中的字符包括哪些呢?最常见的就是Emoji 表情(Emoji 是⼀种特殊的 Unicode 编码,常见于 ios 和 android ⼿机上),和⼀些不常⽤的汉字,以及任何新增的 Unicode 字符等等。
UTF-8编码理论上将, UTF-8 格式使⽤⼀⾄六个字节,最⼤能编码 31 位字符。
最新的 UTF-8 规范只使⽤⼀到四个字节,最⼤能编码21位,正好能够表⽰所有的 17个 Unicode 平⾯。
关于UTF编码,请阅读《常见编码总结》⼀⽂。
⽽utf8 则是 Mysql 早期版本中⽀持的⼀种字符集,只⽀持最长三个字节的 UTF-8字符,也就是 Unicode 中的基本多⽂本平⾯。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
当服务器端的字符集默认安装是cp850,在输入汉字时服务器与客户端字符集不一样,要进行转换。
存入数据:new String(str.getBytes("gbk"),"iso-8859-1");
取出数据:new String(str.getBytes("iso-8859-1"),"gbk");
但是cp850只支持1,2级汉字,对于生僻汉字,此种转换机制就行不通了.
下面方法解决该问题。
存入数据:toIso(str);
取出数据:toGbk(str);
public static String toIso(String str) throws UnsupportedEncodingException{
StringBuffer sb = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
String s = str.substring(i, i + 1);
byte[] bg = s.getBytes();
boolean change = false;
for(byte b:bg) {
int i_b = 0xFF & b;
if(i_b>0x7f&&i_b<0xa0){
change = true;
}
}
StringBuffer s_cha = new StringBuffer();
if(change){
for(byte b:bg) {
s_cha.append("%");
s_cha.append(Integer.toHexString(0xFF & b));
}
sb.append(s_cha.toString());
}else{
sb.append(s);
}
}
String gbk = sb.toString();
return new String(gbk.getBytes("gbk"),"iso-8859-1");
}
public static String toGbk(String str) throws UnsupportedEncodingException{
String gbk = new String(str.getBytes("iso-8859-1"),"gbk");
Pattern p = pile("%\\w\\w%\\w\\w");
Matcher m = p.matcher(gbk);
while(m.find()){
String o = m.group();
String[] ss = o.split("%");
byte[] b = new byte[2];
b[0] = (byte)Integer.parseInt(ss[1], 16);
b[1] = (byte)Integer.parseInt(ss[2], 16);
gbk =gbk.replace(o, new String(b,"gbk"));
}
return gbk;
}。