当前位置: 首页 > news >正文

成都网站seo性价比高如何选择小程序定制公司

成都网站seo性价比高,如何选择小程序定制公司,遵义新闻在线第一网,微信网站建设新闻有过一些Oracle使用经验的朋友#xff0c;大多会知道通过NLS_LANG来设置客户端的情况#xff0c;NLS_LANG由以下部分组成#xff1a;NLS_LANG_.#xff0c;其中第三部分的本意就是用来指明客户端操作系统缺省使用的字符集。所以按正规的用法#xff0c;NLS_LANG应该按照客…有过一些Oracle使用经验的朋友大多会知道通过NLS_LANG来设置客户端的情况NLS_LANG由以下部分组成NLS_LANG_.其中第三部分的本意就是用来指明客户端操作系统缺省使用的字符集。所以按正规的用法NLS_LANG应该按照客户端机器的实际情况进行配置尤其对于字符集一项更是如此这样Oracle就能够在最大程度上实现数据库字符集与客户端字符集的自动转换(当然是如果需要转换的话)。总结一下第一次迭代的重点字符集将特定的符号集编码为计算机能够处理的数值字符集间的转换对于在源字符集与目标字符集都存在的符号理论上转换将不会产生信息丢失而对于在源字符集中存在而在目标字符集中不存在的符号理论上转换将会产生信息丢失数据库字符集选择能够包含所有将要存储的信息符号的字符集客户端字符集设置指明客户端操作系统缺省使用的字符集。第二次迭代通过实例加深对基本概念的理解下面我将引用网友tellin在ITPUB上发表的“CHARACTER SET研究及疑问”帖子该朋友在帖子中列举了他做的相关实验并对实验结果提出了一些疑问我将对他的实验结果进行分析并回答他的疑问。实验结果分析一quote:--------------------------------------------------------------------------------最初由 tellin 发布设置客户端字符集为US7ASCIID:\SET NLS_LANGAMERICAN_AMERICA.US7ASCII查看服务器字符集为US7ASCIISQL SELECT * FROM NLS_DATABASE_PARAMETERS;PARAMETER VALUE------------------------------ ----------------------------------------NLS_CHARACTERSET US7ASCII建立测试表SQL CREATE TABLE TEST (R1 VARCHAR2(10));Table created.插入数据SQL INSERT INTO TEST VALUES(东北);1 row created.SQL SELECT * FROM TEST;R1----------东北SQL EXIT--------------------------------------------------------------------------------这一部分的实验数据的存取与显示都正确好象没什么问题但实际上却隐藏着很大的隐患。首先要将汉字存入数据库而将数据库字符集设置为US7ASCII是不合适的。US7ASCII字符集只定义了128个符号并不支持汉字。另外由于在SQL*PLUS中能够输入中文操作系统缺省应该是支持中文的但在NLS_LANG中的字符集设置为US7ASCII显然也是不正确的它没有反映客户端的实际情况。但实际显示却是正确的这主要是因为Oracle检查数据库与客户端的字符集设置是同样的那么数据在客户与数据库之间的存取过程中将不发生任何转换。具体地说在客户端输入“东北”“东”的汉字的编码为182(10110110)、171(10101011)“北”汉字的编码为177(10110001)、177(10110001)它们将不做任何变化的存入数据库中但是这实际上导致了数据库标识的字符集与实际存入的内容是不相符的从某种意义上讲这也是一种不一致性也是一种错误。而在SELECT的过程中Oracle同样检查发现数据库与客户端的字符集设置是相同的所以它也将存入的内容原封不动地传送到客户端而客户端操作系统识别出这是汉字编码所以能够正确显示。在这个例子中数据库与客户端的设置都有问题但却好象起到了“负负得正”的效果从应用的角度看倒好象没问题。但这里面却存在着极大的隐患比如在应用length或substr等字符串函数时就可能得到意外的结果。另外如果遇到导入/导出(import /export)将会遇到更大的麻烦。有些朋友在这方面做了大量的测试如eygle研究了“源数据库字符集为US7ASCII导出文件字符集为US7ASCII或ZHS16GBK目标数据库字符集为ZHS16GBK”的情况他得出的结论是 “如果的是在Oracle92中我们发现对于这种情况不论怎样处理这个导出文件都无法正确导入到Oracle9i数据库中”、“对于这种情况我们可以通过使用Oracle8i的导出工具设置导出字符集为US7ASCII导出后修改第二、三字符修改 0001 为0354,这样就可以将US7ASCII字符集的数据正确导入到ZHS16GBK的数据库中”。我想对于这些结论这样理解可能更合适一些由于ZHS16GBK字符集是US7ASCII的超级所以如果按正常操作这种转换应该没有问题但出现问题的本质是我们让本应只存储英文字符的US7ASCII数据库非常规地存储了中文信息那么在转化过程中出现错误或麻烦就没什么奇怪的了不出麻烦倒是有些奇怪了。所以说要避免这种情况就是要在建立数据库时选择合适的字符集不让标签(数据库的字符集设置)与实际(数据库中实际存储的信息)不符的情况发生。实验结果分析二quote:--------------------------------------------------------------------------------[ 更改客户端字符集为ZHS16GBKD:\SET NLS_LANGAMERICAN_AMERICA.ZHS16GBKD:\SQLPLUS / AS SYSDBA无法正常显示数据SQL SELECT * FROM TEST;R1--------------------611疑问1ZHS16GBK为US7ASCII的超集为什么在ZHS16GBK环境下无法正常显示--------------------------------------------------------------------------------这主要是因为Oracle检查发现数据库设置的字符集与客户端配置字符集不同它将对数据进行字符集的转换。数据库中实际存放的数据为182(10110110)、171(10101011)、177(10110001)、177(10110001)由于数据库字符集设置为US7ASCII它是一个7bit的字符集存储在8bit的字节中则Oracle忽略各字节的最高bit则182(10110110)就变成了54(0110110)在ZHS16GBK中代表数字符号“6”(当然在其它字符集中也是“6”)同样过程也发生在其它3个字节这样“东北”就变成了“611”。实验结果分析三quote:--------------------------------------------------------------------------------最初由 tellin 发布用ZHS16GBK插入数据SQL INSERT INTO TEST VALUES(东北);1 row created.SQL SELECT * FROM TEST;R1--------------------611??SQL EXIT--------------------------------------------------------------------------------当客户端字符集设置为ZHS16GBK后向数据库插入“东北”Oracle检查发现数据库设置的字符集为US7ASCII与客户端不一致需要进行转换但字符集ZHS16GBK中的“东北”两字在US7ASCII中没有对应的字符所以Oracle用统一的“替换字符”插入数据库在这里为“”编码为63(00111111)这时输入的信息实际上已经丢失不管字符集设置如何改变(如下面引用的实验结果)第二行SELECT出来的结果也都是两个“”号(注意是2个而不是4个)。quote:--------------------------------------------------------------------------------更改客户端字符集为US7ASCIID:\SET NLS_LANGAMERICAN_AMERICA.US7ASCIID:\SQLPLUS / AS SYSDBA无法显示用ZHS16GBK插入的字符集但可以显示用US7ASCII插入的字符集SQL SELECT * FROM TEST;R1----------东北??更改服务器字符集为ZHS16GBKSQL update props$ set value$ZHS16GBK WHERE NAMENLS_CHARACTERSET;1 row updated.SQL COMMIT;更改客户端字符集为ZHS16GBKD:\SET NLS_LANGAMERICAN_AMERICA.ZHS16GBKD:\SQLPLUS / AS SYSDBA可以显示以前US7ASCII的字符集但无法显示用ZHS16GBK插入的数据说明用ZHS16GBK插入的数据为乱码。SQL SELECT * FROM TEST;R1--------------------东北??--------------------------------------------------------------------------------需要指出的是通过“update props$ set value$ZHS16GBK WHERE NAMENLS_CHARACTERSET;”来修改数据库字符集是非常规作法很可能引起问题在这里只是原文引用网友的实验结果。
http://www.zqtcl.cn/news/985055/

相关文章:

  • wordpress百度推送代码兰州网站关键字优化
  • 有了域名怎么建设网站在线crm免费将夜2
  • 网站建设 技术方案模板长沙手机网站公司
  • 游戏网站建设免费版百度只更新快照不收录网站
  • html小清新类型网站网站建设中应注意哪些问题
  • 网站开发技术和seo的联系精品课程网站建设 公司
  • 大型网站建设一般多少钱wordpress 调用百度前端公众库
  • 个人电脑做网站服务器网站地方网站域名用全拼
  • 我们网站在那里登陆后台系统管理成都app制作开发
  • 可以做问卷调查的网站仙居网站建设
  • 知名网站建设公司电话做一个小程序需要多少钱
  • 外贸找客户有什么网站个人如何做网站
  • 旅游项目网站开发ui界面设计分析
  • 企业建设网站没有服务器代理网页浏览
  • 深圳网站建设新闻网站建设营销的企业
  • 建筑设计网站软件排名工具
  • wordpress theme珠宝最适合seo的网站源码
  • 建设工程规划许可证查询网站畜牧业网站模板
  • 做网站大概要多少钱页面网站缓存如何做
  • 家电网站建设需求分析朔州网络推广
  • 陕西交通建设集团网站体检网络营销中自建网站
  • 做游戏的php网站有哪些微信商城是什么
  • wordpress memcached redux深圳网站优化方法
  • 移动商城 网站建设方法方式韩国导航地图app
  • 企业网站源码是什么瑞安企业做网站
  • 佛山深圳建网站wordpress 段代码
  • 网站备案 强制仿牌网站容易被攻击吗
  • 网站做访问追踪js特效演示网站
  • 建设网站女装名字大全宝宝投票网站怎么做
  • 江苏省建设厅网站首页天津百度网站排名优化