书法常识之汉字
汉字是汉语书写的最基本单元,其使用最晚始于商代,历经甲骨文、大篆、小篆、隶书、楷书(草书、行书)诸般书体变化。秦始皇统一中国,李斯整理小篆,“书同文”的历史从此开始。尽管汉语方言发音差异很大,但是书写系统的统一减少了方言差异造成的交流障碍。
东汉许慎在《说文解字》中将汉字构造规律概括为“六书”:象形、指事、会意、形声、转注、假借。其中,象形、指事、会意、形声四项为造字原理,是“造字法”;而转注、假借则为用字规律,是“用字法”。
三千余年来,汉字的书写方式变化不大,使得后人得以阅读古文而不生窒碍。但近代西方文明进入东亚之后,整个汉字文化圈的各个国家纷纷掀起了学习西方的思潮,其中,放弃使用汉字是这场运动的一个重要方面。这些运动的立论以为:跟西方拼音文字相比,汉字是繁琐笨拙的。许多使用汉字国家即进行了不同程度的汉字简化,甚至还有完全拼音化的尝试。日文假名的拉丁转写方案以及汉语多种拼音方案的出现都是基于这种思想。中国大陆将汉字笔划参考行书草书加以省简,于1956年1月28日审订通过《简化字总表》,在中国及新加坡使用至今。台湾则一直使用繁体中文。
目前在使用汉语的地区,大都使用两种规范汉字,分别是繁体中文(繁体字)和简体中文(简体字)。
汉字,是记录汉语的文字系统,并仍然或曾经在日语和朝鲜语、越南语中使用。汉字是世界上最古老的文字之一,拥有4500年以上的历史。狭义地说,它是汉族的文字;广义地言,它是汉字文化圈共同的文字。
汉字是承载文化的重要工具,目前留有大量用汉字书写的典籍。不同的方言都使用汉字作为共同书写体系,因而汉字在历史上对中华文明的传播起到了重要作用,并成为东南亚文化圈形成的内在纽带。在汉字发展过程中,留下了大量诗词、对联等文化,并形成了独特的汉字书法艺术。
一个汉字一般具有多种含义,也具有很强的组词能力,且很多汉字可独立成词。这导致了汉字极高的“使用效率”,2000左右常用字即可覆盖98%以上的书面表达方式。加之汉字表意文字的特性,汉字的阅读效率很高。汉字具备比字母文字更高的信息密度,因此,平均起来,同样内容的中文表达比其他任何字母语言的文字都短。
目前的汉字体系分为繁体字和简体字,前者用于台湾、香港、澳门和北美的华人圈中,后者用于中国大陆和新加坡以及东南亚的华人社区。通常说来,两种汉字书写系统虽然有差异,常用汉字的个体差异不到25%。
由于汉字书写复杂,“汉字落后论”的说法存在了很长时间,认为汉字是教育及信息化瓶颈,并有“汉字拉丁化”甚至废除汉字的推动行为。现在一般认为汉字也有突出优点,初始学习难度虽大,但掌握常用字后不存在类似海量英文单词的继续学习问题,且其表意特性也能充分调动人脑的学习能力。在计算机输入问题基本解决后,“汉字落后论”及“汉字拉丁化”已实际上逐渐被大多数人抛弃。
目前汉字系统已经基本稳定,但汉字的规范化、生僻字的自然消亡仍在继续进行。
关于汉字编码
为进行信息交换,各汉字使用地区都制订了一系列汉字字符集标准。
① GB2313字符集,收入汉字6763个,符号715个,总计7478个字符,这是大陆普遍使用的简体字符集。楷体-GB2313、仿宋-GB2313、华文行楷等市面上绝大多数字体支持显示这个字符集,亦是大多数输入法所采用的字符集。市面上绝大多数所谓的繁体字体,其实采用的是GB-2313字符集简体字的编码,用字体显示为繁体字,而不是直接用GBK字符集中繁体字的编码,错误百出。
② BIG-5字符集,收入13060个繁体汉字,808个符号,总计13868个字符,目前普遍使用于台湾、香港等地区。台湾教育部标准宋体楷体等港台大多数字体支持这个字符集的显示。
③ GBK字符集,又称大字符集(GB=GuóBiāo国标,K=扩展),包含以上两种字符集汉字,收入21003个汉字,882个符号,共计21885个字符,包括了中日韩(CJK)统一汉字20902个、扩展A集(CJK Ext-A) 中的汉字52个。Windows 95\98简体中文版就带有这个GBK.txt文件。宋体、隶书、黑体、幼圆、华文中宋、华文细黑、华文楷体、标楷体(DFKai-SB)、Arial Unicode MS、MingLiU、PMingLiU等字体支持显示这个字符集。微软拼音输入法2003、全拼、紫光拼音等输入法,能够录入如镕镕炁夬喆嚞姤赟赟龑昳堃慜靕臹等GBK简繁体汉字。
BIG-5 (繁体中文)与GB-2313 (简体中文),编码不相兼容,字符在不同的操作系统中便产生乱码。文本文字的简体与繁体(文字及编码)之间的转换,可用BabelPad、TextPro或Convertz之类的转码软件来解决。若是程序,Windows XP操作系统,可用Microsoft AppLocale Utility 1.0解决;Windows 2000的操作系统,大概只有用:中文之星、四通利方、南极星、金山快译之类的转码软件方能解决了。
④ GB18030字符集,包含GBK字符集、CJK Ext-A 全部6582个汉字,共计27533个汉字。宋体-18030、方正楷体(FZKai-Z03)、书同文楷体(MS Song)宋体(ht_cjk+)、香港华康标准宋体(DFSongStd)、华康香港标准楷体、CERG Chinese Font、韩国New Gulim,以及微软Windows Vista操作系统提供的宋黑楷仿宋等字体亦支持这个字符集的显示。Windows 98支持这个字符集,以下的字符集则不支持。手写输入法逍遥笔4.0版支持GB18030字符集及方正超大字符集汉字的录入。
⑤ 方正超大字符集,包含GB18030字符集、CJK Ext-B中的36862个汉字,共计64395个汉字。宋体-方正超大字符集支持这个字符集的显示。Microsoft Office XP或2003简体中文版就自带有这个字体。Windows 2000的操作系统需安装超大字符集支持包“Surrogate更新”。
⑥ ISO/IEC 10646 / Unicode字符集,这是全球可以共享的编码字符集,两者相互兼融,涵盖了世界上主要语文的字符,其中包括简繁体汉字,计有:CJK统一汉字20902个,CJK Ext-A 6582个,Ext-B 42711个,共计70195个汉字。SimSun-ExtB(宋体)、MingLiU-ExtB(细明体)能显示全部Ext-B汉字。至今尚无单独一款字体能够显示全部70195个汉字,但可用海峰五笔、新概念五笔、仓颉输入法世纪版、新版的微软新注音、仓颉输入法 6.0 版(单码功能)等输入法录入。Ext-C还有2万多个汉字。详情请参阅香港中文大学网站、马来西亚仓颉之友网站、福建陈清钰个人网站。
⑦ 汉字构形数据库2.3版,内含楷书字形60082个、小篆11100个、楚系简帛文字2627个、金文3459个、甲骨文177个、异体字12768组。可以安装该程序,亦可以解压后使用其中的字体文件,对于整理某些古代文献十分有用。
如果超出了输入法所支持的字符集,就不能录入计算机。如果没有相应字体的支持,则显示为黑框、方框或空白。如果操作系统或应用软件不支持该字符集,则显示为问号(一个或两个)。在网页上亦存在同样的情况。
关于Unicode
由于各国国家标准字集所收的汉字字数、常用字的差异,虽然象中国两岸GB/BIG5字集常用字基本类似,转换后阅读并不成问题,但是这种编码转换的混乱关系,对文字交流始终是一种障碍。因此相关国家的标准化组织和文字工作者经过共同努力,终于在93年完成了包含中日韩(CJK)汉字的Unicode 汉字标准ISO 10646.1。 Unicode是完全双字节表示的多国文字编码体系,编码空间0x0000-0xFFFF。 ISO 10646.1汉字标准使用编码0x4E00-9FA5,共包含20902个汉字。其中: 大陆(S)提出的汉字17124个,台湾(T)提出的汉字17258个; S与T的并集,即中国(C)提出的汉字为20158个。 日本(J)提出的汉字为12157个,中国未提出的690个(Ja); 韩国(K)提出的汉字为7477个,其中中国未提出的90个(Ka); Ja与Ka并集共744字。 支持Unicode编码的相关电脑系统软件,如Unix, Win95已有推出,但是由于Unicode的ASCII码是用双字节编码(即一般电脑系统中的单字节ASCII码前加 0x00),同时其汉字编码与各国的现有编码也不兼容,造成现有的软件和数据不能直接使用,所以目前完全使用Unicode软件系统的用户并不多,大多数只将它此作为一个国际语言编码标准来使用。
PostgreSQL源码安装时的configure相关选项
作者:李明
从PostgreSQL源码运行./configure时,相关可用选项有:
[root@pg postgresql-13.4]# ./configure --help
`configure' configures PostgreSQL 13.4 to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local/pgsql]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/usr/local/pgsql/bin', `/usr/local/pgsql/lib' etc. You can specify
an installation prefix other than `/usr/local/pgsql' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/postgresql]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-integer-datetimes
obsolete option, no longer supported
--enable-nls[=LANGUAGES]
enable Native Language Support
--disable-rpath do not embed shared library search path in
executables
--disable-spinlocks do not use spinlocks
--disable-atomics do not use atomic operations
--enable-debug build with debugging symbols (-g)
--enable-profiling build with profiling enabled
--enable-coverage build with coverage testing instrumentation
--enable-dtrace build with DTrace support
--enable-tap-tests enable TAP tests (requires Perl and IPC::Run)
--enable-depend turn on automatic dependency tracking
--enable-cassert enable assertion checks (for debugging)
--disable-thread-safety disable thread-safety in client libraries
--disable-largefile omit support for large files
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-extra-version=STRING
append STRING to version
--with-template=NAME override operating system template
--with-includes=DIRS look for additional header files in DIRS
--with-libraries=DIRS look for additional libraries in DIRS
--with-libs=DIRS alternative spelling of --with-libraries
--with-pgport=PORTNUM set default port number [5432]
--with-blocksize=BLOCKSIZE
set table block size in kB [8]
--with-segsize=SEGSIZE set table segment size in GB [1]
--with-wal-blocksize=BLOCKSIZE
set WAL block size in kB [8]
--with-CC=CMD set compiler (deprecated)
--with-llvm build with LLVM based JIT support
--with-icu build with ICU support
--with-tcl build Tcl modules (PL/Tcl)
--with-tclconfig=DIR tclConfig.sh is in DIR
--with-perl build Perl modules (PL/Perl)
--with-python build Python modules (PL/Python)
--with-gssapi build with GSSAPI support
--with-krb-srvnam=NAME default service principal name in Kerberos (GSSAPI)
[postgres]
--with-pam build with PAM support
--with-bsd-auth build with BSD Authentication support
--with-ldap build with LDAP support
--with-bonjour build with Bonjour support
--with-openssl build with OpenSSL support
--with-selinux build with SELinux support
--with-systemd build with systemd support
--without-readline do not use GNU Readline nor BSD Libedit for editing
--with-libedit-preferred
prefer BSD Libedit over GNU Readline
--with-uuid=LIB build contrib/uuid-ossp using LIB (bsd,e2fs,ossp)
--with-ossp-uuid obsolete spelling of --with-uuid=ossp
--with-libxml build with XML support
--with-libxslt use XSLT support when building contrib/xml2
--with-system-tzdata=DIR
use system time zone data in DIR
--without-zlib do not use Zlib
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L if you have libraries in a
nonstandard directory
LIBS libraries to pass to the linker, e.g. -l
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if
you have headers in a nonstandard directory
CXX C++ compiler command
CXXFLAGS C++ compiler flags
LLVM_CONFIG path to llvm-config command
CLANG path to clang compiler to generate bitcode
CPP C preprocessor
PKG_CONFIG path to pkg-config utility
PKG_CONFIG_PATH
directories to add to pkg-config's search path
PKG_CONFIG_LIBDIR
path overriding pkg-config's built-in search path
ICU_CFLAGS C compiler flags for ICU, overriding pkg-config
ICU_LIBS linker flags for ICU, overriding pkg-config
XML2_CONFIG path to xml2-config utility
XML2_CFLAGS C compiler flags for XML2, overriding pkg-config
XML2_LIBS linker flags for XML2, overriding pkg-config
LDFLAGS_EX extra linker flags for linking executables only
LDFLAGS_SL extra linker flags for linking shared libraries only
PERL Perl program
PYTHON Python program
MSGFMT msgfmt program for NLS
TCLSH Tcl interpreter program (tclsh)
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to .
PostgreSQL home page: .
部分选项解释如下:
安装路径相关选项
该选项控制make install命令安装文件路径。大部分情况下,均可使用--prefix选项。
--prefix=PREFIX
将所有文件放置到PREFIX指定的路径下(而非默认的/usr/local/pgsql)。
--exec-prefix=EXEC-PREFIX
将体系结构相关的文件放置到与PREFIX不同的路径下。
--bindir=DIRECTORY
可执行文件路径。默认为EXEC-PREFIX/bin,即默认为/usr/local/pgsql/bin。
--sysconfdir=DIRECTORY
配置文件路径。默认为PREFIX/etc。
--libdir=DIRECTORY
设置库及动态加载模块安装路径。默认为EXECPREFIX/lib
--includedir=DIRECTORY
C和C++头文件所在路径,默认为PREFIX/include。
--datarootdir=DIRECTORY
只读数据文件的根目录。默认为PREFIX/share
--localedir=DIRECTORY
本地数据,特别是信息翻译库文件的存放路径。默认为DATAROOTDIR/locale
--mandir=DIRECTORY
PostgreSQL的主页面所在路径。默认为DATAROOTDIR/man
--docdir=DIRECTORY
文档文件的路径。默认为DATAROOTDIR/doc/postgresql。
--htmldir=DIRECTORY
PostgreSQL的HTML格式文档的安装路径。默认为DATAROOTDIR。
PostgreSQL特性相关选项
本节介绍创建PostgreSQL非默认特性的选项。之所以这些特性为非默认的,是因为它们依赖于其他的软件。
--enable-nls[=LANGUAGES]
启用本地语言支持(NLS)。若不指定LANGUAGE,则会安装所有可用的语言。
需要Gettext API。
--with-perl
创建PL/Perl服务端语言。
--with-python
创建PL/Python服务端语言。
--with-tcl
创建PL/Tcl服务端语言。
--with-tclconfig=DIRECTORY
tcl配置文件tclConfig.sh所在路径。
--with-icu
支持ICU(International Component for Unicode)库。需要安装ICU4C包,版本至少为4.2。
--with-llvm
构建基于JIT的LLVM支持。需要安装LLVM库,最低版本为3.9。
--with-openssl
支持SSL(加密)连接。需要安装OpenSSL。
--with-gssapi
支持GSSAPI加密。
--with-ldap
支持LDAP认证及连接参数查看。unix下需要安装OpenLDAP包,windows下,需要安装WinLDAP包。
--with-pam
支持PAM(Pluggable Authentication Modules,可拔插认证模块)。
--with-bsd-auth
支持BSD认证。
--with-systemd
支持systemd服务提醒。需要安装libsystemd及其相关文件。
--with-bonjour
支持Bonjour自动服务发现。
--with-uuid=LIBRARY
创建使用指定UUID库的uuid-ossp模块(提供生成UUID的功能)。LIBRARY需为以下之一:
bsde2fsossp--with-ossp-uuid
等同--with-uuid=ossp。
--with-libxml
支持SQL/XML。需要安装Libxml2 2.6.23及更新版本。
--with-libxslt
使用libxslt构建,启用xml2模块从而可以从xml到xsl的转换。必须同时指定--withlibxml
关闭PostgreSQL特性的选项
本节介绍关闭某些默认创建的PostgreSQL特性。如非必要,无需执行。
--without-readline
禁用readline。使得无法在命令行psql编辑和使用历史命令。
--with-libedit-preferred
使用BSD-licensed libedit库而非GPL-licensed ReadLine。默认使用ReadLine。
--without-zlib
不使用zlib库。
--disable-spinlocks
即使PostgreSQL不支持平台的CPU自旋锁,也可以构建成功。使用此选项,会导致很严重的数据库性能问题。
--disable-atomics
禁用CPU原子操作。可能导致数据库性能问题。
--disable-thread-safety
禁用客户端库的线程安全。 这样可以防止libpq和ECPG程序中的并发线程安全地控制其专用连接句柄。 仅在线程支持不足的平台上使用此功能。
构建过程详情选项
--with-includes=DIRECTORIES
DIRECTORIES为冒号分隔的列表,编译器从该路径中检索头文件。如果包装在了非默认路径,则需要指定该参数。
示例:--with-includes=/opt/gnu/include:/usr/sup/include
--with-libraries=DIRECTORIES
DIRECTORIES为冒号分隔的列表,内为库文件。
示例:--with-libraries=/opt/gnu/lib:/usr/sup/lib
--with-system-tzdata=DIRECTORY
使用外部的时区数据库。
--with-extra-version=STRING
添加STRING到PostgreSQL版本号上。
--disable-rpath
不要标记PostgreSQL的可执行文件以指示它们应该在安装的库目录中搜索共享库(请参见--libdir)。
其他选项
在构建时修改默认端口号--with-pgport。以下参数,限资深用户使用。
--with-pgport=NUMBER
为客户端及服务端设置默认端口号。默认为5432。
--with-krb-srvnam=NAME
GSSAPI使用的Kerberos默认名称。默认为postgres。在windows下,必须设置为POSTGRES。
--with-segsize=SEGSIZE
以GB为单位设置segment size。大表被分为segment size大小的多个文件。默认为1GB。不同segment size,不可使用pg_upgrade升级。
--with-blocksize=BLOCKSIZE
以KB为单位设置block size。此为表中存储及I/O的单位。默认为8kb。值必须为2的1到32次方(kb)。不同block size,不可使用pg_upgrade升级。
--with-wal-blocksize=BLOCKSIZE
以kb为单位,设置WAL block size。此为WAL日志中存储及I/O的单位。默认为8kb。值必须为2的1到64次方(kb)。不同wal block size,不可使用pg_upgrade升级。
开发者选项
本节介绍开发及调试PostgreSQL所使用的选项。除了--enable-debug外,其他选项不建议在生产环境使用。对于支持DTrace的操作系统,生产环境也可以启用--enable-dtrace选项。
若构建代码开发服务端,则建议至少启用选项--enable-debug和--enable-cassert。
--enable-debug
以调试模式编译程序及库。即可以在调试模式下运行程序以对问题进行分析。如果使用了GCC编译器,建议启用该选项。
--enable-cassert
在服务端启用断言检查。不建议在生产环境使用该选项。
--enable-tap-tests
启用使用Perl TAP工具进行测试。需要安装Perl及其模块IPC::Run。
--enable-depend
启用自动依赖跟踪。仅支持GCC。
--enable-coverage
如果使用GCC,则所有程序和库都将使用代码覆盖率测试工具进行编译。仅支持GCC。
--enable-profiling
如果使用GCC,则会编译所有程序和库,以便对其进行概要分析。仅支持GCC。
--enable-dtrace
支持动态跟踪工具DTrace。
相关问答
各位行家!有哪位知道!哈尔滨标准液压站大全,标准液压站性...[回答]我推荐一家老牌的,目前市场上他们家的产品性价比比较高的了。小米1(电信版,标准版);小米1s(电信版,标准版,青春版);小米216G(电信版,标准版);小米2...