??xml version="1.0" encoding="utf-8" standalone="yes"?>
解决q个问题需从两个方面入手:1.~短Q或消除Q前后景l图旉差,2.减少l制ơ数
1.~短Q或消除Q前后景l图旉?/strong>
OnEraseBkgnd(CDC* pDC)
{
return TRUE;
}
实际上背景填充是必须Q否则前景图像与D留的背景在一起非常杂乱,
q里取消的步骤,其实Udl图q程了(?.Q,合成一张完整图像?/span>
2.减少l制ơ数
采用“双缓?/span>”技术,先在内存~冲Z完成l图Q再贴到屏幕?br />
另外如果~冲囑փ内容不是变化的,应存为成员对象之c,不要每次ȝ
一般在OnDrawQCDC* pDCQ中完成
///////////////////////////--GDI --////////////////////////////////////
int nWidth=1000;
int nHeight=1000;
CDC MemDC; //首先定义一个显C备对?
CBitmap MemBitmap;//定义一个位囑֯?
//随后建立与屏q显C兼容的内存昄讑֤
MemDC.CreateCompatibleDC(pDC); //q时q不能绘图,因ؓ没有地方?^_^
//下面建立一个与屏幕昄兼容的位图,至于位图的大嘛Q可以用H口的大?
//Q也可以自己定义Q如Q有滚动条时p大于当前H口的大,在BitBlt时决定拷贝内存的哪部分到屏幕上)
MemBitmap.CreateCompatibleBitmap(pDC,nWidth,nHeight);
//位N入到内存显C备中
//只有选入了位囄内存昄讑֤才有地方l图Q画到指定的位图?
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
//先用背景色将位图清除q净Q这里用原背景色作ؓ背景
//你也可以用自己应该用的颜?
MemDC.FillSolidRect(0,0,nWidth,nHeight,pDC->GetBkColor());
//l图
CBrush brush(RGB(0,255,0));
for(int i=0;i<50;i++)
{
for(int j=0;j<80;j++)
{
//MemDC.Rectangle(10*j,10*i,9,9);
CRect rc(10*j,10*i,10*j+8,10*i+8);
MemDC.FillRect(&rc,&brush);
}
}
//内存中的图拯到屏q上q行昄
pDC->BitBlt(0,0,nWidth,nHeight,&MemDC,0,0,SRCCOPY);
//l图完成后的清理
MemBitmap.DeleteObject();
MemDC.DeleteDC();
///////////////////////////--GDI+ --////////////////////////////////////
Bitmap* buf=new Bitmap(2000,2000) ;
Graphics gc(buf);//Graphics.FromImage(buf);
//反锯?br />
//gc.SetSmoothingMode(SmoothingModeAntiAlias);
SolidBrush bgbrush(Color(255,255,255,255));
gc.FillRectangle(&bgbrush,0,0,2000,2000);//背景填充
Pen pen(Color(255, 0, 0, 255));
SolidBrush sbrush(Color(255,0,255,255));
for(int i=0;i<60;i++)
{
for(int j=0;j<60;j++)
gc.FillRectangle(&sbrush,10*j,10*i,9,9);
}
Graphics G(pDC->GetSafeHdc());
G.DrawImage(buf ,0,0);
解决旉暂时q不定Q时的Ҏ如下Q?br /> App在InitInstance中加入:
LOGFONT logfont = {0};
:: SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(LOGFONT), &logfont, 0);
afxGlobalData.SetMenuFont(&logfont,true);
注释Q?/p>
字体的设|保存在一个全局变量afxGlobalData中,此变量定义AfxGlobals.h中?br /> AFX_GLOBAL_DATA中有一个SetMenuFont可以讑֮字体属性,影响Menu、Toolbar、Dock Pane{的caption字体?br /> 但是q个讄对tooltip无媄响,临时解决Q在上面代码基础上在加入
if(afxGlobalData.fontTooltip.GetSafeHandle() != NULL)
{
::DeleteObject(afxGlobalData.fontTooltip.Detach());
}
afxGlobalData.fontTooltip.CreateFontIndirect(&logfont);
U性稳压电源,是指调整工作在U性状态下的稳压电源。而在开关电?/span>中则不一P开关管Q?font color="#0033ff">在开关电源中Q我们一般把调整叫做开关管
Q是工作在开、关两种状态下的:开——电d;关——电d?/font>?/span>开关电源是一U比较新型的甉|。它h效率高,重量轻,可升、降压,输出功率?/font>{优炏V但是由于电路工作在开关状态,所?font color="#f70909">噪声比较?/font>?/span> 通过下图Q我们来单的说说降压型开关电源的工作原理。如图所C,电\由开?/font>KQ实际电路中Z极管或者场效应)Q?font color="#ff0000">l流二极?/font>DQ?font color="#ff0000">储能
甉|LQ?font color="#ff0000">滤L电容C{构成。当开关闭合时Q电源通过开?/span>K、电?/span>Ll?/span>负蝲供电Qƈ部分电能储存在甉|L以及电容C中。由于电?/span>L的自感,在开x通后Q电增大得比较~慢Q即输出不能立刻辑ֈ甉|电压倹{?/span>一定时间后Q开x开Q由于电?/span>L的自感作用(可以比较形象的认?/span>甉|中的甉|有惯性作用)Q将保持电\中的甉|不变Q即从左往右l流?/span>q电流q负载,从地U返回,到l流二极?/span>D的正极,l过二极?/span>DQ?/span>q回甉|L的左端,从而Ş成了一个回路。通过控制开关闭合跟断开?/span>旉Q?font color="#ff0000">?/font>PWM——脉冲宽度调?/font>Q,可以控制输出电压。如果通过?/span>输出电压来控制开、关的时_以保持输出电压不变,q就实现了稳?/span>的目的?/span>
500)this.width=500" border="0">
在实际的开关电源中Q开?/span>K׃极管或场效应代ѝ当开x开Ӟ甉|很小Q当开关闭合时Q电压很,所以发热功?/span>U×I׃很小?/span>q就是开关电源效率高的原因?/span>
看过完两个关于电源的FAQ后,大家可能对电源的效率计算q不了解。在后面的FAQ中,我们专门给大家介绍?/span>
摘自|络.
?译者:叉荣,来源Q?a >http://imysql.cnQ{载请注明?译者和出处Qƈ且不能用于商业用途,q者必I?/span>
日期Q?006/10/01
本文讨论 MySQL 的备份和恢复机制Q以及如何维护数据表Q包括最主要的两U表cdQ?code>MyISAM ?Innodb
Q文中设计的 MySQL 版本?5.0.22?/p>
目前 MySQL 支持的免费备份工hQ?code>mysqldump、mysqlhotcopyQ还可以?SQL 语法q行备䆾Q?code>BACKUP TABLE 或?SELECT INTO OUTFILE
Q又或者备?code>二进制日志(binlogQ?/code>Q还可以?code>直接拯数据文g和相关的配置文g。MyISAM 表是保存成文件的形式Q因此相Ҏ较容易备份,上面提到的几U方法都可以使用?code>Innodb 所有的表都保存在同一个数据文?ibdata1
中(也可能是多个文gQ或者是独立的表I间文gQ,相对来说比较不好备䆾Q免费的Ҏ可以?code>拯数据文g?code>备䆾 binlogQ或者用 mysqldump
?/p>
mysqldump
是采用SQLU别的备份机Ӟ它将数据表导?SQL 脚本文gQ在不同?MySQL 版本之间升时相Ҏ较合适,q也是最常用的备份方法?br />
现在来讲一?mysqldump
的一些主要参敎ͼ
它告?mysqldumpQ导出的数据和哪种数据库或哪个旧版本的 MySQL 服务器相兼容。值可以ؓ ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options
{,要用几个|用逗号它们隔开。当然了Q它q不保证能完全兼容,而是量兼容?
导出的数据采用包含字D名的完?INSERT
方式Q也是把所有的值都写在一行。这么做能提高插入效率,但是可能会受?max_allowed_packet
参数的媄响而导致插入失败。因此,需要}慎用该参数Q至我不推荐?
指定导出数据旉用何U字W集Q如果数据表不是采用默认?latin1
字符集的话,那么导出时必L定该选项Q否则再ơ导入数据后生ؕ码问题?/p>
告诉 mysqldump
?INSERT
语句的开头和l尾增加 /*!40000 ALTER TABLE table DISABLE KEYS */;
?/*!40000 ALTER TABLE table ENABLE KEYS */;
语句Q这能大大提高插入语句的速度Q因为它是在插入完所有数据后才重建烦引的。该选项只适合 MyISAM
表?/p>
默认情况下,mysqldump
开?--complete-insert
模式Q因此不想用它的的话Q就使用本选项Q设定它的gؓ false
卛_?
使用十六q制格式导出二进制字W串字段。如果有二进制数据就必须使用本选项。媄响到的字D늱型有 BINARY、VARBINARY、BLOB
?/p>
在开始导Z前,提交h锁定所有数据库中的所有表Q以保证数据的一致性。这是一个全局读锁Qƈ且自动关?--single-transaction
?--lock-tables
选项?/p>
它和 --lock-all-tables
cMQ不q是锁定当前导出的数据表Q而不是一下子锁定全部库下的表。本选项只适用?MyISAM
表,如果?Innodb
表可以用 --single-transaction
选项?/p>
只导出数据,而不d CREATE TABLE
语句?/p>
不导ZQ何数据,只导出数据库表结构?/p>
q只是一个快捷选项Q等同于同时d --add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset
选项。本选项能让 mysqldump
很快的导出数据,q且导出的数据能很快导回。该选项默认开启,但可以用 --skip-opt
用。注意,如果q行 mysqldump
没有指定 --quick
?--opt
选项Q则会将整个l果集放在内存中。如果导出大数据库的话可能会出现问题?/p>
该选项在导出大表时很有用,它强?mysqldump
从服务器查询取得记录直接输出而不是取得所有记录后它们缓存到内存中?/p>
导出存储q程以及自定义函数?/p>
该选项在导出数据之前提交一?BEGIN
SQL语句Q?code>BEGIN 不会dM应用E序且能保证导出时数据库的一致性状态。它只适用于事务表Q例?InnoDB
?BDB
?br />
本选项?--lock-tables
选项是互斥的Q因?LOCK TABLES
会M挂v的事务隐含提交?br />
要想导出大表的话Q应l合使用 --quick
选项?
同时导出触发器。该选项默认启用Q用 --skip-triggers
用它?/p>
其他参数详情请参考手册,我通常使用以下 SQL 来备?MyISAM
表:
/usr/local/mysql/bin/mysqldump -uyejr -pyejr \ --default-character-set=utf8 --opt --extended-insert=false \ --triggers -R --hex-blob -x db_name > db_name.sql
使用以下 SQL 来备?Innodb
表:
/usr/local/mysql/bin/mysqldump -uyejr -pyejr \ --default-character-set=utf8 --opt --extended-insert=false \ --triggers -R --hex-blob --single-transaction db_name > db_name.sql
另外Q如果想要实现在U备份,q可以?--master-data
参数来实玎ͼ如下Q?/p>
/usr/local/mysql/bin/mysqldump -uyejr -pyejr \ --default-character-set=utf8 --opt --master-data=1 \ --single-transaction --flush-logs db_name > db_name.sql
它只是在一开始的瞬间h锁表Q然后就hbinlog了,而后在导出的文g中加?code>CHANGE MASTER 语句来指定当前备份的binlog位置Q如果要把这个文件恢复到slave里去Q就可以采用q种Ҏ来做?
?mysqldump
备䆾出来的文件是一个可以直接倒入?SQL 脚本Q有两种Ҏ可以数据导入?/p>
mysql
客户?
例如Q?/p>
/usr/local/mysql/bin/mysql -uyejr -pyejr db_name < db_name.sql
其实q不是标准的 SQL 语法Q而是 mysql
客户端提供的功能Q例如:
SOURCE /tmp/db_name.sql;
q里需要指定文件的l对路径Qƈ且必L mysqld
q行用户(例如 nobody)有权限读取的文g?/p>
mysqlhotcopy
是一?PERL E序Q最初由Tim Bunce~写。它使用 LOCK TABLES、FLUSH TABLES
?cp
?scp
来快速备份数据库。它是备份数据库或单个表的最快的途径Q但它只能运行在数据库文Ӟ包括数据表定义文件、数据文件、烦引文Ӟ所在的机器上?code>mysqlhotcopy 只能用于备䆾 MyISAM
Qƈ且只能运行在 cUnix
?NetWare
pȝ上?/p>
mysqlhotcopy
支持一ơ性拷贝多个数据库Q同时还支持正则表达。以下是几个例子Q?/p>
root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr \ db_name /tmp (把数据库目录 db_name 拯?/tmp ? root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr \ db_name_1 ... db_name_n /tmp root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr \ db_name./regex/ /tmp
更详l的使用Ҏh看手册,或者调用下面的命o来查?mysqlhotcopy
的帮助:
perldoc /usr/local/mysql/bin/mysqlhotcopy
注意Q想要?mysqlhotcopy
Q必要?SELECT、RELOAD(要执?FLUSH TABLES)
权限Qƈ且还必须要能够有d datadir/db_name 目录的权限?
mysqlhotcopy
备䆾出来的是整个数据库目录,使用时可以直接拷贝到 mysqld
指定?datadir (在这里是 /usr/local/mysql/data/)目录下即可,同时要注意权限的问题Q如下例Q?/p>
root#cp -rf db_name /usr/local/mysql/data/
root#chown -R nobody:nobody /usr/local/mysql/data/ (?db_name 目录的属L?mysqld
q行用户)
BACKUP TABLE
语法其实?mysqlhotcopy
的工作原理差不多Q都是锁表,然后拯数据文g。它能实现在U备份,但是效果不理惻I因此不推荐用。它只拷贝表l构文g和数据文Ӟ不同时拷贝烦引文Ӟ因此恢复时比较慢?br />
例子Q?/p>
BACK TABLE tbl_name TO '/tmp/db_name/';
注意Q必要?FILE
权限才能执行本SQLQƈ且目?/tmp/db_name/ 必须能被 mysqld
用户可写Q导出的文g不能覆盖已经存在的文Ӟ以避免安全问题?
SELECT INTO OUTFILE
则是把数据导出来成ؓ普通的文本文gQ可以自定义字段间隔的方式,方便处理q些数据?br />
例子Q?/p>
SELECT * INTO OUTFILE '/tmp/db_name/tbl_name.txt' FROM tbl_name;
注意Q必要?FILE
权限才能执行本SQLQƈ且文?/tmp/db_name/tbl_name.txt 必须能被 mysqld
用户可写Q导出的文g不能覆盖已经存在的文Ӟ以避免安全问题?
?BACKUP TABLE
Ҏ备䆾出来的文Ӟ可以q行 RESTORE TABLE
语句来恢复数据表?br />
例子Q?/p>
RESTORE TABLE FROM '/tmp/db_name/';
权限要求cM上面所q?/p>
?SELECT INTO OUTFILE
Ҏ备䆾出来的文Ӟ可以q行 LOAD DATA INFILE
语句来恢复数据表?br />
例子Q?/p>
LOAD DATA INFILE '/tmp/db_name/tbl_name.txt' INTO TABLE tbl_name;
权限要求cM上面所q。倒入数据之前Q数据表要已l存在才行。如果担心数据会发生重复Q可以增?REPLACE
关键字来替换已有记录或者用 IGNORE
关键字来忽略他们?/p>
采用 binlog
的方法相Ҏ说更灉|Q省心省力,而且q可以支持增量备份?/p>
启用 binlog
时必要重启 mysqld
。首先,关闭 mysqld
Q打开 my.cnf
Q加入以下几行:
server-id = 1 log-bin = binlog log-bin-index = binlog.index
然后启动 mysqld
可以了。运行过E中会?binlog.000001
以及 binlog.index
Q前面的文g?mysqld
记录所有对数据的更新操作,后面的文件则是所?binlog
的烦引,都不能轻易删除。关?binlog
的信息请查看手册?/p>
需要备份时Q可以先执行一?SQL 语句Q让 mysqld
l止对当?binlog
的写入,可以把文g直接备䆾Q这L话就能达到增量备份的目的了:
FLUSH LOGS;
如果是备份复制系l中的从服务器,q应该备?master.info ?relay-log.info 文g?
备䆾出来?binlog
文g可以?MySQL 提供的工?mysqlbinlog
来查看,如:
/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001
该工具允怽昄指定的数据库下的所?SQL 语句Qƈ且还可以限定旉范围Q相当的方便Q详l的h看手册?/p>
恢复Ӟ可以采用cM以下语句来做刎ͼ
/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001 | mysql -uyejr -pyejr db_name
?mysqlbinlog
输出?SQL 语句直接作ؓ输入来执行它?/p>
如果你有I闲的机器,不妨采用q种方式来备份。由于作?slave
的机器性能要求相对不是那么高,因此成本低,用低成本p实现增量备䆾而且q能分担一部分数据查询压力Q何乐而不为呢Q?/p>
相较前几U方法,备䆾数据文g最为直接、快速、方便,~点是基本上不能实现增量备䆾。ؓ了保证数据的一致性,需要在靠背文g前,执行以下 SQL 语句Q?/p>
FLUSH TABLES WITH READ LOCK;
也就是把内存中的数据都刷新到盘中,同时锁定数据表,以保证拷贝过E中不会有新的数据写入。这U方法备份出来的数据恢复也很单,直接拯回原来的数据库目录下卛_?/p>
注意Q对?Innodb
cd表来_q需要备份其日志文gQ即 ib_logfile*
文g。因为当 Innodb
表损坏时Q就可以依靠q些日志文g来恢复?/p>
对于中等U别业务量的pȝ来说Q备份策略可以这么定Q第一ơ全量备份,每天一ơ增量备份,每周再做一ơ全量备份,如此一直重复。而对于重要的且繁忙的pȝ来说Q则可能需要每天一ơ全量备份,每小时一ơ增量备份,甚至更频J。ؓ了不影响U上业务Q实现在U备份,q且能增量备份,最好的办法是采用M复制机制(replication
)Q在 slave
机器上做备䆾?/p>
作ؓ一名DBA(我目前还不是Q呵?Q最重要的工作内容之一是保证数据表能安全、稳定、高速用。因此,需要定期维护你的数据表。以?SQL 语句很有用Q?/p>
CHECK TABLE ?REPAIR TABLEQ检查或l护 MyISAM ? OPTIMIZE TABLEQ优?MyISAM ? ANALYZE TABLEQ分?MyISAM ?
当然了,上面q些命o起始都可以通过工具 myisamchk
来完成,在这里不作详q?/p>
Innodb
表则可以通过执行以下语句来整理碎片,提高索引速度Q?/p>
ALTER TABLE tbl_name ENGINE = Innodb;
q其实是一?NULL
操作Q表面上看什么也不做Q实际上重新整理片了?/p>
通常使用?MyISAM
表可以用上面提到的恢复方法来完成。如果是索引坏了Q可以用 myisamchk
工具来重建烦引。而对?Innodb
表来_没q么直接了,因ؓ它把所有的表都保存在一个表I间了。不q?Innodb
有一个检查机制叫 模糊查点
Q只要保存了日志文gQ就能根据日志文件来修复错误。可以在 my.cnf 文g中,增加以下参数Q让 mysqld
在启动时自动查日志文Ӟ
innodb_force_recovery = 4
关于该参数的信息h看手册?/p>
做好数据备䆾Q定只好合适的备䆾{略Q这是一个DBA所做事情的一部分,万事开头难Q就从现在开始吧Q?/p>
׃每个ASCII码字W只占用一个字节(8个bit位)Q且最高bit位Mؓ0Q即ASCII码字W中的有真正意义的信息只是后面的7个低bit位,而传l的SMTP协议又是ZASCII码字W设计的Q因此,一些基于传lSMTP协议设计的SMTP服务器在处理邮g内容时只取出每个字节中的7个低bit位进行处理,而将最高bit位忽略不计。显Ӟq样的SMTP服务器在处理包含有非ASCII码字W的邮g内容Ӟ会出C重的问题Q这限制了邮g中只能出现英文的ASCII码字W,而不能出C文字W或二进制数据?/p>
Z能够在邮件内容中包含中文、图像或声音{非ASCII字符的数据,Z惛_了采用某U编码方式将非ASCII字符的数据{换成可打印的ASCII字符后再发送,邮g阅读E序则按照相应的解码方式从邮件中q原出原始数据即可,比较常用的两U邮件编码方式ؓBASE64和Quoted-printable。后来的扩展SMTP协议允许直接在邮件中传递二q制数据Q而不用对它们q行邮g~码Qh们将q种没有q行邮g~码的二q制数据的邮件内容称?bit~码Qؓ了与此相区别Qh们将没有q行邮g~码的纯ASCII码字W的邮gUCؓ7bit~码。MIME消息体的邮g~码方式通过MIME消息头中的Content- Transfer- Encoding头字D|定,每种邮g~码方式的介l如下:
?nbsp; 7Bit
指消息体内容全部是没有经q编码的ASCII字符?/p>
?nbsp; 8Bit
指消息体内容是没有经q编码的原始数据Q且其中包含有非ASCII字符的数据。现在的邮g服务器基本上都支?Bit~码Q用支?Bit~码的邮件服务器可以化邮件的处理q程?/p>
?nbsp; BASE64
Base64是将二进制数据{换成可打印的ASCII字符的一U最常见的编码方式,它的基本原理是将一l连l的字节数据?个bit位进行分l,然后Ҏl数据用一个ASCII字符来表C?个bit位最多能表示26Q?4个数|因此可以使用64个ASCII字符来对应这64个数|q?4个ASCII字符为:
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
其中每个字符表示的数值就是该字符在上面的排列中的索引P索引号从0开始编受假讑֜内存中有如下三个q箋的字节数据:
[0110,0001] [0110,0010] [0110,0011]
它们按6个bit位进行分l后的Ş式如下:
[0110,00] [01,0110,] [0010,01] [10,0011]
分组后得C四组数据Q每l数据对应的十进制数值分别ؓ24?2??5Q它们分别对应Y、W、J、jq四个字W,所以,对[0110,0001] [0110,0010] [0110,0011]q三个字节的数据q行BASE64~码后的l果?#8220;YWJj”?/p>
BASE64~码要求??位字节(?4个bitQ的数据转化??位字节(也是24个bitQ的数据Q如果原来的8位字节数据的字节个数不能?整除Q其余数只能??Q那么如何对余下?个或2?位字节数据进行处理呢Q对于这U情况,仍然?个bit位对剩余的字节进行分l,在最后不?个bit位的内容后面d几个?的bit位来凑成6个bit位,例如Q如果最后剩下的一?位字节的内容如下Q?/p>
[0110,0001]
对它q行分组后的l果如下Q?/p>
[0110,00] [01,0000]
其中用黑斜体标识?为填充的bit位,所以,最后剩下的q个字节的BASE64~码l果?#8220;YQ”。BASE64~码q有规定Q如果编码后的整个结果文本的字符个数不是4的整数倍,那么需要在最后填?#8220;=”字符来凑?的倍数Q所以,在最后这个字节编码的l果后面q要d两个“=”字符Q即“YQ==”。显Ӟ如果最后剩下两?位字节的内容Q它可以被编码成三个字符Q最后还需要添加一?#8220;=”字符。对一大段数据q行BASE64~码Ӟ可以在编码结果中的适当位置加入回R换行QMIME规范BASE64~码l果中的每行最?6个字W?/p>
?nbsp; Quoted-printable
Quoted-printable也是一U将二进制数据{换成可打印的ASCII字符的编码方式,它对ASCII字符不进行{换,只对非ASCII字符的数据进行编码{化。每个非ASCII字符的字节数据,都被转换成一?="号后跟这个字节的十六q制数据Q例如,“ab中国”的Quoted-printable~码l果?#8220;ab=d6=d0=b9= fa”。显Ӟ׃"="号在Quoted-printable~码中具有的Ҏ意义Q所以,原始数据中的"="号字W也需要进行编码{换,?#8220;=3d”表示?/p>
对一大段数据q行Quoted-printable~码Ӟ可以在编码结果中的适当位置加入回R换行Q在回R换行前需要额外再加入一?#8220;=”字符Q以表示后面的换行是因编码而造成的Y回RQ而非原始数据中原有的回R换行。例如,对于下面一DQuoted-printable~码后的数据Q?/p>
=D5=E2=CA=C7=CD=A8=D0=C5=B5=C4=B3=CC=D0=
=F2, =C7=EB=D6=B8=BD=CC!
在第一行末“=”字符和换行,都是׃~码后生成的?/p>
三千余年来,汉字的书写方式变化不大,使得后h得以阅读古文而不生窒。但q代西方文明q入东亚之后Q整个汉字文化圈的各个国家纷Uh起了学习西方的思潮Q其中,攑ּ使用汉字是这动的一个重要方面。这些运动的立论以ؓQ跟西方拼音文字相比Q汉字是J琐W拙的。许多用汉字国家即q行了不同程度的汉字化,甚至q有完全拼音化的试。日文假名的拉丁转写Ҏ以及汉语多种拼音Ҏ的出现都是基于这U思想。中国大陆将汉字W划参考行书草书加以省Q于1956q??8日审订通过《简化字总表》,在中国及新加坡用至今。台湑ֈ一直用繁体中文?/font>
目前在用汉语的地区Q大都用两U规范汉字,分别是繁体中文(J体字)和简体中文(体字Q?/font>
汉字Q是记录汉语的文字系l,q仍然或曄在日语和朝鲜语、越南语中用。汉字是世界上最古老的文字之一Q拥?500q以上的历史。狭义地_它是汉族的文字;q义地言Q它是汉字文化圈共同的文字?/font>
汉字是承载文化的重要工具Q目前留有大量用汉字书写的典c。不同的方言都用汉字作为共同书写体p,因而汉字在历史上对中华文明的传播vC重要作用Qƈ成ؓ东南亚文化圈形成的内在纽带。在汉字发展q程中,留下了大量诗词、对联等文化Qƈ形成了独特的汉字书法艺术?/font>
一个汉字一般具有多U含义,也具有很强的l词能力Q且很多汉字可独立成词。这D了汉字极高的“用效率”,2000左右常用字即可覆?8%以上的书面表达方式。加之汉字表意文字的Ҏ,汉字的阅L率很高。汉字具备比字母文字更高的信息密度,因此Q^均v来,同样内容的中文表达比其他M字母语言的文字都短?/font>
目前的汉字体pd为繁体字和简体字Q前者用于台湾、香港、澳门和北美的华人圈中,后者用于中国大陆和新加坡以及东南亚的华人社区。通常说来Q两U汉字书写系l虽然有差异Q常用汉字的个体差异不到25Q?/font>
׃汉字书写复杂Q“汉字落后论”的说法存在了很长时_认ؓ汉字是教育及信息化瓶颈,q有“汉字拉丁化”甚臛_除汉字的推动行ؓ。现在一般认为汉字也有突Z点,初始学习隑ֺ虽大Q但掌握常用字后不存在类似v量英文单词的l箋学习问题Q且其表意特性也能充分调动h脑的学习能力。在计算入问题基本解军_Q“汉字落后论”及“汉字拉丁化”已实际上逐渐被大多数人抛弃?/font>
目前汉字pȝ已经基本E_Q但汉字的规范化、生d的自然消亡仍在l进行?/font>
行信息交换,各汉字用地区都制订了一pd汉字字符集标准?/font>
?GB2313字符集,收入汉字6763个,W号715个,总计7478个字W,q是大陆普遍使用的简体字W集。楷?GB2313、仿?GB2313、华文行L市面上绝大多数字体支持显C个字W集Q亦是大多数输入法所采用的字W集。市面上l大多数所谓的J体字体Q其实采用的是GB-2313字符集简体字的编码,用字体显CZؓJ体字,而不是直接用GBK字符集中J体字的~码Q错误百出?/font>
?BIG-5字符集,收入13060个繁体汉字,808个符P总计13868个字W,目前普遍使用于台湾、香港等地区。台湾教育部标准宋体楷体{港台大多数字体支持q个字符集的昄?/font>
?GBK字符集,又称大字W集(GB=GuQBiāo国标QK=扩展)Q包含以上两U字W集汉字Q收?1003个汉字,882个符Pp21885个字W,包括了中日韩(CJK)l一汉字20902个、扩展A?CJK Ext-A) 中的汉字52个。Windows 95\98体中文版带有这个GBK.txt文g。宋体、隶书、黑体、幼圆、华文中宋、华文细黑、华文楷体、标楷体(DFKai-SB)、Arial Unicode MS、MingLiU、PMingLiU{字体支持显C个字W集。微软拼韌入法2003、全拹{光拼音等输入法,能够录入如镕镕炁夬喆嚞姤赟赟龑昳堃慜靕臹{GBKJ体汉字?/font>
BIG-5 (J体中文)与GB-2313 (体中?Q编码不相兼容,字符在不同的操作pȝ中便产生q。文本文字的体与J体Q文字及~码Q之间的转换Q可用BabelPad、TextPro或Convertz之类的{码Y件来解决。若是程序,Windows XP操作pȝQ可用Microsoft AppLocale Utility 1.0解决QWindows 2000的操作系l,大概只有用:中文之星、四通利斏V南极星、金山快译之cȝ转码软g方能解决了?/font>
?GB18030字符集,包含GBK字符集、CJK Ext-A 全部6582个汉字,p27533个汉字。宋?18030、方正楷?FZKai-Z03)、书同文楷体(MS Song)宋体(ht_cjk+)、香港华h准宋?DFSongStd)、华康香港标准楷体、CERG Chinese Font、韩国New GulimQ以及微软Windows Vista操作pȝ提供的宋黑楷仿宋{字体亦支持q个字符集的昄。Windows 98支持q个字符集,以下的字W集则不支持。手写输入法逍遥W?.0版支持GB18030字符集及Ҏ大字符集汉字的录入?/font>
?Ҏ大字符集,包含GB18030字符集、CJK Ext-B中的36862个汉字,p64395个汉字。宋?Ҏ大字符集支持这个字W集的显C。Microsoft Office XP?003体中文版p带有q个字体。Windows 2000的操作系l需安装大字符集支持包“Surrogate更新”?/font>
?ISO/IEC 10646 / Unicode字符集,q是全球可以׃n的编码字W集Q两者相互兼融,늛了世界上主要语文的字W,其中包括J体汉字Q计有:CJKl一汉字20902个,CJK Ext-A 6582个,Ext-B 42711个,p70195个汉字。SimSun-ExtB(宋体)、MingLiU-ExtB(l明?能显C全部Ext-B汉字。至今尚无单独一Ƒ֭体能够显C全?0195个汉字,但可用vCW、新概念五笔、仓颉输入法世纪版、新版的微Y新注韟뀁仓颉输入法 6.0 ?单码功能){输入法录入。Ext-Cq有2万多个汉字。详情请参阅香港中文大学|站、马来西亚仓颉之友网站、福建陈清钰个h|站?/font>
?汉字构Ş数据?.3版,内含楷书字Ş60082个、小?1100个、楚pȝ帛文?627个、金?459个、甲骨文177个、异体字12768l。可以安装该E序Q亦可以解压后用其中的字体文gQ对于整理某些古代文献十分有用?/font>
如果出了输入法所支持的字W集Q就不能录入计算机。如果没有相应字体的支持Q则昄为黑框、方框或I白。如果操作系l或应用软g不支持该字符集,则显CZؓ问号(一个或两个)。在|页上亦存在同样的情c?/font>
׃各国国家标准字集所收的汉字字数、常用字的差异,虽然象中国两岸GB/BIG5字集常用字基本类|转换后阅dƈ不成问题Q但是这U编码{换的混ؕ关系Q对文字交流始终是一U障。因此相兛_家的标准化组l和文字工作者经q共同努力,l于?3q完成了包含中日?CJK)汉字的Unicode 汉字标准ISO 10646.1?Unicode是完全双字节表示的多国文字编码体p,~码I间0x0000-0xFFFF?ISO 10646.1汉字标准使用~码0x4E00-9FA5Q共包含20902个汉字。其中:大陆(S)提出的汉?7124个,台湾(T)提出的汉?7258? S与T的ƈ集,即中?C)提出的汉字ؓ20158个。日?J)提出的汉字ؓ12157个,中国未提出的690?Ja); 韩国(K)提出的汉字ؓ7477个,其中中国未提出的90?Ka); Ja与Kaq?44字?支持Unicode~码的相关电脑系lYӞ如Unix, Win95已有推出Q但是由于Unicode的ASCII码是用双字节~码(即一般电脑系l中的单字节ASCII码前?0x00)Q同时其汉字~码与各国的现有~码也不兼容Q造成现有的Y件和数据不能直接使用Q所以目前完全用Unicode软gpȝ的用户ƈ不多Q大多数只将它此作ؓ一个国际语a~码标准来用?/font>
tab1.addItem('hello','id','CONTENT');
tab1.delItem('t2');
tab1.addItem();tab1.addItem();
tab2.addItem('hi','id','CONTENT');
tab2.addItem();tab2.addItem();
tab1.display();
tab2.display();
tab3.display();
--></script>
</body>
</html>
下蝲Tab.rar
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<!-- 样式表?->
<STYLE>
v\:* {Behavior: url(#default#VML) }
o\:* {behavior: url(#default#VML) }
body{font-family:arial}
</STYLE>
<title>3D Pie</title>
<script src=Pie3D.js ></script>
</head>
<body>
<div id='pieChart'></div>
<script>
xxColor=new Array("#ccc","#b5cc88","#6B8E23","#3CB371","#f59d56","yellow","#d8d8d8","#708090","#4682B4","red","#ffc20e");
//参数('容器div的id',宽度,高度,'图表标题')
var pie=new Pie3D('pieChart',320,192,'TEST 3D PIE');
//试数据Q数据格?"目名称",?"颜色")
//此处可结合AjaxQ取得数据后动态更?/font>
for(var i=0;i<10;i++){
dcake=new Array("cake"+i,Math.random()*10,xxColor[i]);
pie.Cakes[i]=dcake;//赋?br />}
pie.draw();//d
</script>
</body></html>
function drag(o,r){
//o.firstChild.onmousedown=function(){return false;};
o.onmousedown=function(a){
var d=document;
if (!a)a=window.event;
o.style.backgroundColor="#0066ff"
var x=a.layerX?a.layerX:a.offsetX,y=a.layerY?a.layerY:a.offsetY;
//-------------for resize
var leftdiv=document.getElementById("leftregion");
var leftdivwidth=parseInt(leftdiv.style.width);
//leftdiv.innerHTML+="width:"+leftdivwidth+"<br>"
var rightdiv=document.getElementById("rightregion");
var rightdivwidth=parseInt(rightdiv.style.width);
var xx=a.pageX?a.pageX:a.clientX,yy=a.pageY?a.lpageY:a.clientY;
var oleft=parseInt(o.style.left)//xx-x;
var rightdivleft=parseInt(rightdiv.style.left);
//leftdiv.innerHTML+=o.style.width;//only for tracing
if (o.setCapture)
o.setCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=function(a){
if (!a)a=window.event;
if (!a.pageX)a.pageX=a.clientX;
if (!a.pageY)a.pageY=a.clientY;
//clientX: distance between explorer and mouse point
var tx=a.pageX-x,ty=a.pageY-y;
//------------for resize
var txx=a.pageX-xx,tyy=a.pageY-yy
o.style.left=tx<r[0]?r[0]:tx>r[1]?r[1]:tx;
//o.style.top=ty<r[2]?r[2]:ty>r[3]?r[3]:ty;
move_x=parseInt(o.style.left)-oleft;
//move_y=otop-o.style.top
//leftdiv.innerHTML+="width:"+leftdiv.style.width+" move:"+move_x+"<br>"
//rightdiv.innerHTML+="o left:"+o.style.left+" move:"+move_x+"<br>"
leftdiv.style.width=(leftdivwidth+move_x)+"px"
rightdiv.style.width=(rightdivwidth-move_x)+"px"
rightdiv.style.left=(rightdivleft+move_x)+"px"
} ;
d.onmouseup=function(){
o.style.backgroundColor="#FFFFFF"
if (o.releaseCapture)
o.releaseCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=null;
d.onmouseup=null;
} ;
} ;
}
2.服务器端获取参数后解?/p>
String username = new String(request.getParameter("username").getBytes("ISO-8859-1"),"UTF8");
-----------------------------------------------------------
http_request.open("POST", url, true);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http_request.send(poststr);
---------------------------------------------------------------
ZWeb的邮件客LQ后端邮件服务器暂时只测试了Open WebMail
HTML+javascript+Ajax+Servlet+Javamail+Tomcat
面构架上采用CSS布局?br />