当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 经常看到一些朋友问ORACLE字符集方面的问题,我想以迭代的方式来介绍一下。
 

 

    摘要:发信人: fork (撒哈拉沙漠的沙), 信区: matlab 标 题: m文件转c/c++ ,“不可能”变“可能” 发信站: bbs 哈工大紫丁香站 (sun aug 1 15:42:01 2004) m文件转c/c++ ,“不可能”变“可能” 当你用“mcc -b sglcpp 文件名&......
 ·m文件转c/c++后的打包问题    »显示摘要«
    摘要:发信人: fork (撒哈拉沙漠的沙), 信区: matlab 标 题: m文件转c/c++后的打包问题 发信站: bbs 哈工大紫丁香站 (sun aug 1 15:29:03 2004) m文件转c/c++后的打包问题 mcc后的程序是否可以完全脱离matlab运行呢,一般情况下可以遵循一个原则,先用“mcc -b sglcpp 文件名” 来试验,matlab会生成一个......


Oracle数据库字符集问题解析 zz

经常看到一些朋友问oracle字符集方面的问题,我想以迭代的方式来介绍一下.

【程序编程相关:台湾资策会SCORM 2004 Comp

【推荐阅读:(翻译)classpath和环境变量设置

第一次迭代:掌握字符集方面的基本概念. 【扩展信息:去掉连接图片的虚线框

有些朋友可能会认为这是多此一举,但实际上正是由于对相关基本概念把握不清,才导致了诸多问题与疑问.

首先是字符集的概念.

我们知道,电子计算机最初是用来进行科学计算的(所以叫做“计算机”),但随着技术的发展,还需要计算机进行其它方面的应用处理.这就要求计算机不仅能处理数值,还能处理诸如文字.特殊符号等其它信息,而计算机本身能直接处理的只有数值信息,所以就要求对这些文字.符号信息进行数值编码,最初的字符集是我们都非常熟悉的ascii,它是用7个二进制位来表示128个字符,而后来随着不同国家.组织的需要,出现了许许多多的字符集,如表示西欧字符的iso8859系列的字符集,表示汉字的gb2312-80.gbk等字符集.

字符集的实质就是对一组特定的符号,分别赋予不同的数值编码,以便于计算机的处理.

字符集之间的转换.字符集多了,就会带来一个问题,比如一个字符,在某一字符集中被编码为一个数值,而在另一个字符集中被编码为另一个数值,比如我来创造两个字符集demo_charset1与demo_charset2,在demo_charset1中,我规定了三个符号的编码为:a(0001),b(0010),?(1111);而在demo_charset2中,我也规定了三个符号的编码为:a(1001),c(1011),?(1111),这时我接到一个任务,要编写一个程序,负责在demo_charset1与demo_charset2之间进行转换.由于知道两个字符集的编码规则,对于demo_charset1中的0001,在转换为demo_charset2时,要将其编码改为1001;对于demo_charset1中的1111,转换为demo_charset2时,其数值不变;而对于demo_charset1中的0010,其对应的字符为b,但在demo_charset2没有对应的字符,所以从理论上无法转换,对于所有这类无法转换的情况,我们可以将它们统一转换为目标字符集中的一个特殊字符(称为“替换字符”),比如在这里我们可以将?作为替换字符,所以b就转换为了?,出现了信息的丢失;同样道理,将demo_charset2的c字符转换到demo_charset1时,也会出现信息丢失.

所以说,在字符集转换过程中,如果源字符集中的某个字符在目标字符集中没有定义,将会出现信息丢失.

数据库字符集的选择.

我们在创建数据库时,需要考虑的一个问题就是选择什么字符集与国家字符集(通过create database中的character set与national character set子句指定).考虑这个问题,我们必须要清楚数据库中都需要存储什么数据,如果只需要存储英文信息,那么选择us7ascii作为字符集就可以;但是如果要存储中文,那么我们就需要选择能够支持中文的字符集(如zhs16gbk);如果需要存储多国语言文字,那就要选择utf8了.

数据库字符集的确定,实际上说明这个数据库所能处理的字符的集合及其编码方式,由于字符集选定后再进行更改会有诸多的限制,所以在数据库创建时一定要考虑清楚后再选择.


...   下一页
    摘要:发信人: fork (撒哈拉沙漠的沙), 信区: matlab 标 题: 简化m文件转化为c/c++文件,vc编译 发信站: bbs 哈工大紫丁香站 (sat jul 31 22:29:48 2004) 在本版《总结:m文件转化为c/c++语言文件,vc编译》一文中讲到如何将一个m文件转成c /cpp文件并在vc中进行编译。这种方法有个烦人的地方,每次你都需要把matlab生成的一 大堆c和h文件......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE