特殊名字符號范文
時間:2023-03-21 11:54:15
導(dǎo)語:如何才能寫好一篇特殊名字符號,這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公文云整理的十篇范文,供你借鑒。

篇1
2、〢ヽ粘人的心動
3、ヤ凍結(jié)的紙鶴
4、ˇ浮夸爺們er
5、╱╳灬英雄ゞ
6、〝ゞ觸動ㄣ
7、oo後~大亼物
8、︶ㄣ幻謊言式愛情
9、answer廝守 °
篇2
關(guān)鍵詞:公式 ASCIIMathML MathML MathPlayer
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2015)09(a)-0002-02
通過網(wǎng)絡(luò)傳播、學(xué)習(xí)數(shù)學(xué)知識,在線交流,已成為便捷、潮流、重要的手段,都涉及數(shù)學(xué)公式在Web中輸入、處理、顯示的問題。MathML是W3C制定的基于XML的WWW數(shù)學(xué)信息交換標(biāo)準(zhǔn),從表義(Content)和表現(xiàn)(Presentation)兩方面完整地表達(dá)了數(shù)學(xué)公式。
Peter Jipsen編寫的ASCIIMathML.js[1]腳本,兼容LaTex語法,實現(xiàn)表義到表現(xiàn)的轉(zhuǎn)化。Design Science公司的網(wǎng)頁公式引擎MathPlayer[2],實現(xiàn)了網(wǎng)頁上MathML的顯示。兩者結(jié)合,完美地實現(xiàn)了從字符串到公式的網(wǎng)頁顯示。
1 ASCIIMathML語義符號
ASCIIMathML的公式語義,是一種基于ASCII碼的線性字符串格式,與Design Science公司的另一軟件MathType的公式表義語法基本一致。在安裝了MathType的MS Word中,公式有焦點時,按鍵Alt+\即可在公式和語義串之間切換。
1.1 ASCIIMAthML基本語義符號
(1)定界符:同時也是與普通文本區(qū)分的標(biāo)識符。公式內(nèi)容界定在一對$…$或`...`中。
(2)保留字:函數(shù)名如sin,表達(dá)式如lim,希臘字母如Pi,特殊符號如infty。
(3)括號:{},表示其中內(nèi)容為一整體。如\lim_{x->0}中x->0作為整體置于lim底部。
(4)語義符:/表分式,_表上標(biāo),^表下標(biāo),&表矩陣元素之間隔,\\表矩陣元素?fù)Q行。
(5)轉(zhuǎn)義符:\,表示其后字符(串)為保留字或特定含義,如\$表美元符,\frac表分式。
(6)其他數(shù)學(xué)符號:如+-表示±,!=表≠,oo表示∞,\in表示等等。
1.2 ASCIIMAthML的表形語義符號
見表1。
2 ASCIIMathML的基本解析結(jié)果
2.1 ASCIIMathML的輔助標(biāo)簽
ASCIIMathML的輔助標(biāo)簽界定math對象中的單個字符,或界定行、塊內(nèi)容。其結(jié)構(gòu)標(biāo)簽見表1之語義。
(1)單個ascii字母字符或保留字串(a-z,A-Z及保留字):.
(2)單個ascii數(shù)字字符(0-9): .
(3)單個ascii其他字符(+,-,=,,#,%,.,:,’,”等等): .
(4)空格:
(5)行.內(nèi)容塊定界符:…
2.2 ASCIIMathML主要解析結(jié)果示例
ASCIIMathML完成了ascii文本串的解析到MathML之DOM對象樹的創(chuàng)建,它是表現(xiàn)(Pretentatin)所代表的公式二維結(jié)構(gòu)在頁面上的體現(xiàn)。表2列舉了常見公式的解析結(jié)果。
在ASCIIMathML的轉(zhuǎn)換中,首先引用自定義元素的名空間,創(chuàng)建對象,為內(nèi)部子節(jié)點指定樣式(以的形式),然后是表2中實質(zhì)性具體解析結(jié)果。
3 ASCIIMathML的運行過程
在HTML文件的任意位置(推薦在var _userid = '';var _siteid =669;var _istoken = 1;var _model = 'Model03'; WebPageSpeed =141; UrchinTrack();和之間)添加:
即可實現(xiàn)對ASCIIMathML.js的引用。其運行過程為:
(1)創(chuàng)建AsciiMathML對象以及名字空間:
?>
(2)在文檔的onload事件中完成ASCIIMathML的初始化工作;
(3)遍歷DOM對象樹,查找公式表義的字符串,創(chuàng)建對應(yīng)的math對象;
(4)由動態(tài)鏈接庫形式的網(wǎng)頁插件MathPlayer.DLL完成math標(biāo)簽對象的頁面公式顯示。
4 結(jié)語
以文本串作公式源,在客戶端解析、顯示,較之圖片,易編、省開銷、能重復(fù)利用,還可實現(xiàn)公式的檢索[3],甚至語音播報[4]。該文對AsciiMathML.js腳本(以v2.01為范本)在廣泛使用的IE(6.0及以上)平臺上實現(xiàn)的表義到表現(xiàn)的轉(zhuǎn)化功能進(jìn)行分析,以期在此基礎(chǔ)上的進(jìn)一步開發(fā)利用。
參考文獻(xiàn)
[1] http:///en/products/mathplayer/
[2] http://chapman.edu/~jipsen/mathml/ASCIIMathML.js
篇3
關(guān)鍵詞:招貼設(shè)計;文字;符號
中圖分類號:J524 文獻(xiàn)標(biāo)識碼:A 文章編號:1005-5312(2013)14-0028-02
日本現(xiàn)代著名設(shè)計師五十嵐威暢說過,“26個羅馬字母本身沒有任何意義,但他們組合起來卻能表示一切,正因其單純和幾何的形體,從這些基本圖形就能創(chuàng)造出許多變化”。文字承擔(dān)著傳遞信息的主要任務(wù),也是設(shè)計師創(chuàng)作手法上的表現(xiàn),表達(dá)更多的審美情趣及美感。
一、招貼中文字符號的涵義
文字是記錄語言的符號和工具。從最早的結(jié)繩記事到現(xiàn)代的文字、圖形記事等,都是文明的進(jìn)步。文字都是以符號作為信息的載體傳達(dá)寓意。隨著時代的進(jìn)步,從古代的“象形文字”到現(xiàn)在我們所使用的文字,實際上是符號化的過程,經(jīng)過加工并承載著一定的設(shè)計語義,就形成了當(dāng)代招貼中的文字符號效果。符號作為非語言的信息傳遞方式,在招貼文字設(shè)計中更是體現(xiàn)的淋漓盡致。
符號學(xué)家索緒爾說:“語言符號連接的不是事物和名稱,而是概念和音響形象①”。并用能指與所指分別代替“概念和音響形象”的二元符號。另一位符號學(xué)家皮爾斯認(rèn)為 “一個符號,或者說象征,是某人用來從某一方面或關(guān)系上代表某物的某種東西②”。在他看來,符號是能指(代表事物的符號)、所指對象(被符號指涉的對象)和符號意義(對符號的闡釋)的三元結(jié)構(gòu)。索緒爾的二元符號學(xué)立足于語言符號上,皮爾斯的三元符號學(xué)著眼于整個世界,相對來說更具體、廣泛。
文字是用視覺形象來表達(dá)思想的符號,是一種美的形象。文字設(shè)計是為增強視覺傳達(dá)效果,提高作品的訴求力,賦予作品版面審美價值的一種重要構(gòu)成設(shè)計。招貼中的文字設(shè)計是對文字造型進(jìn)行精心安排,運用視覺形式的法則,把平面設(shè)計中的基本元素和應(yīng)用手段看成符號,通過對這些基本元素的加工與整合,使之在視覺上有審美感受,實現(xiàn)傳情達(dá)意的目的與視覺沖擊力。
二、文字符號在招貼設(shè)計中的表現(xiàn)
人是通過符號來思維的,符號是思維的主體。招貼設(shè)計通過文字、圖形和色彩向受眾傳遞著信息。通過視覺進(jìn)而延續(xù)到受眾心理活動的思維過程,而這種延續(xù)正是依賴于作為思維主體的符號。將文字的“形”與招貼的“寓意”結(jié)合,打破常規(guī),形成一種“情理之中,意料之外”的視覺化效果。這也正式符號學(xué)上的能指與所指的表現(xiàn)。
我國著名平面大師靳埭強先生在《漢字》系列山水風(fēng)云海報(如圖1)把古今兼容,承傳創(chuàng)新,塑造獨特個性的意念融入到招貼的文字設(shè)計中。以書法的方式畫出造型的輪廓,表現(xiàn)畫面的意境,這是對文字形態(tài)上的創(chuàng)造;中國的“文房四寶”即筆、墨、紙、硯四宗器物之符號語言,分別融合在這四副“字畫”中,達(dá)到了文字與工具符號的完美結(jié)合,充分體現(xiàn)出書法和傳統(tǒng)思想的完美結(jié)合,從中還散發(fā)著化物為意的氣息,給人遐想“筆架山”、“靜止(紙)水”、“沿(硯,意沿海臺風(fēng))”、“墨色云”,也體現(xiàn)著文化與自然的相互聯(lián)系,影響著我們現(xiàn)代人。
字體是視覺傳達(dá)設(shè)計美感四大表現(xiàn)元素之一,對文字作適當(dāng)?shù)淖冃?,每一處的變形又是有道理和依?jù)的,能夠讓人看懂是什么字,又能傳達(dá)作者的創(chuàng)意。“看得懂”與“看不懂”是介于符號學(xué)上的所指與能指的關(guān)系,受眾根據(jù)作者的創(chuàng)意結(jié)合自己的理解領(lǐng)會出其中的意義。如圖2《聲、色、藝》圖形文字設(shè)計,將傳統(tǒng)中國戲曲元素與書法文字的組合,“聲”是發(fā)出的聲音,是物體振動時所產(chǎn)生的能引起聽覺的波,“鳥”是能發(fā)聲的一種動物;“色”由物體發(fā)射、反射的光通過視覺而產(chǎn)生的印象,中國戲曲中的“蝴蝶”顏色的豐富多彩;“藝”古代指六藝以及術(shù)數(shù)方技等各種技能,戲曲中的“帽子”也是中國戲曲藝術(shù)的代表之一;分別提取書法的文字形態(tài)和中國戲曲的寓意等基本元素,重新構(gòu)成全新意義上的視覺化符號,具有它的所指和能指的意義。它們代表中國傳統(tǒng)文化,有著悠久的歷史。各自具有的結(jié)構(gòu)、韻律、形態(tài)、寓意通過不同的文字、圖形結(jié)合能夠表現(xiàn)出獨特的符號美。
日本的平面大師福田繁雄以《F》(如圖3)為主的招貼,主畫面為福田繁雄名字的首字母“F”為基本型,保持不變,進(jìn)行圖形元素的創(chuàng)意置換?!癋”是第一元素文字形態(tài),延用第二元素圖形中的人、動物等視覺化元素進(jìn)行空間異質(zhì)同構(gòu)的設(shè)計。使字母的“F”不僅表示字面的意義,通過對“F”形態(tài)上的不同置換,與符號化形象的結(jié)合,置換出新的元素并完成再創(chuàng)造,表達(dá)出新的本質(zhì)涵義,通過耐人尋味。
三、招貼中文字符號的解構(gòu)
招貼設(shè)計是設(shè)計師傳遞自己思想和信息的形式,設(shè)計師的目的是要通過某種特殊、特定的視覺符號傳遞給受眾,而受眾對招貼設(shè)計中符號的理解受到自身經(jīng)驗和知識構(gòu)成的限制,也就是符號作為信息的載體,接發(fā)著需有著對知識的共同理解能力。在招貼文字設(shè)計過程中,又不能盲目地去追尋創(chuàng)新而不注重本身的制約,所以,在表現(xiàn)手法上更多的是用受眾容易接受的設(shè)計符號作為元素,這樣不僅能使受眾對其所愛,還能深刻的傳遞設(shè)計符號的理念。文字是招貼中的重要組成元素,有著不可替代的作用。我們應(yīng)該從“形”、“意”兩方面去理解其中的含義,使招貼傳遞出設(shè)計者所要傳達(dá)的“神”。
篇4
1. 系統(tǒng)變量
系統(tǒng)變量是Authorware自身所提供的一套變量,它們主要用來跟蹤各設(shè)計按鈕中相關(guān)信息或系統(tǒng)信息等多方面的信息。
每一個變量都有一個唯一的名稱。系統(tǒng)變量的名稱是以大寫字母開頭,有一個或幾個單詞組成,單詞之間沒有空格。例如AltDown等。有些變量后面可以跟一個“@”字符再加上一個設(shè)計按鈕的標(biāo)題名,這種變量稱為引用變量。利用引用變量讀者可以查找文件中任意一個設(shè)計按鈕中的相關(guān)信息。
2. 自定義變量
如果用戶的需求超出了Authorware所提供的系統(tǒng)變量的功能,用戶可以定義一個變量,這種變量我們稱之為自定義變量。
自定義變量是由用戶自己定義的,在程序的設(shè)計中,要求變量名的唯一性,所以讀者在定義一個新的變量時,新的變量名必須是一個除了系統(tǒng)變量名和已存在的自定義變量名外的新的名稱。自定義變量的使用方法同系統(tǒng)變量,能使用系統(tǒng)變量的地方也可以使用自定義變量。自定義變量的初始值是由用戶賦給的。
變量的賦值有以下兩種方法:
(1) 定義新的自定義變量時在【Variables】對話框中給變量賦值。
(2) 在【運算】設(shè)計按鈕對話框中使用賦值符號“:=”給變量賦初值。格式為:
“變量名”:=“初始值”
其中“:=”稱為賦值符號。在Authorware的程序設(shè)計中,讀者可以直接使用“變量名”=“初始值”來賦值,Authorware會自動檢測賦值過程,并自動為賦值符號添加一個“:”。例如:City:=“北京”,Pause:=TRUE等。
根據(jù)變量的存儲類型,變量可以劃分為三種。
在其它的編程語言中,例如C 、C++、FORTRAN等語言中,變量的定義和使用是非常復(fù)雜的。例如:在FORTRAN語言中,變量的類型有:
全局變量
局部變量
僅就一個簡單的數(shù)值型變量,F(xiàn)ORTRAN又有如下類型:
整型
實型
單精度
雙精度
長整型
各種各樣的變量類型使用戶眼花繚亂,學(xué)習(xí)起來非常困難的。之所以將變量定義得如此復(fù)雜,其主要目的就是為了節(jié)省寶貴的內(nèi)存資源。
在Authorware中,我們沒有必要為定義變量的各種類型煞費苦心,Authorware沒有區(qū)分變量的整型和實型,是全局變量還是局部變量,以數(shù)值型變量來說,Authorware只有一種單一的類型:數(shù)值型,Authorwar將所有的變量都視為全局變量。
(1) 數(shù)值型變量:數(shù)值型變量用來存儲具體的數(shù)值。數(shù)值的類型是任意的數(shù)值,可以是整型(例如50、-30等)、實型(例如3.4456、-5.654)。
在Authorware中,數(shù)值型變量的存儲范圍是
(2) 字符型變量:字符型變量用來存儲字符串。字符串是由一個或多個字符組成的。例如:“This is $100”、“The number is 3444”和“*as?”等都是字符串。
請讀者注意,在我們把字符串賦值給一個字符型變量的時候,必須為字符串加上雙引號。在Authorware中,一個字符型變量可以存儲的字符數(shù)長達(dá)3000個。
(3) 邏輯變量:邏輯變量存儲兩種狀態(tài):TRUE 或者FALSE。
邏輯變量最典型的用途是作為一個判斷條件,激活或不激活某一選項。
函數(shù)的類型
函數(shù)主要用來執(zhí)行一種特殊的操作。 Authorware的函數(shù)分為以下兩種類型:
(1) 系統(tǒng)函數(shù):系統(tǒng)函數(shù)是Authorware自身提供的一系列函數(shù)。這些函數(shù)對于圖形對象、正文對象、設(shè)計按鈕和文件等進(jìn)行直接操作。
注意:
對于函數(shù)來說,名稱必須唯一,而且每一個函數(shù)必須遵循某種使用規(guī)則,這種規(guī)則稱之為語法。一個函數(shù)一般包含一至幾個參數(shù),函數(shù)的參數(shù)是Authorware為完成某一特定任務(wù)所必須的信息。例如函數(shù)Random(min, max, units),參數(shù)為min(最小值)、max(最大值)和units(小數(shù)點后位數(shù))。系統(tǒng)函數(shù)均以大寫字母打頭,由一個或多個單詞組成,單詞之間沒有空格。
(2) 自定義函數(shù):對于Authorware系統(tǒng)無法完成的特殊任務(wù),讀者可以自己定義函數(shù)來完成這些任務(wù),具體的內(nèi)容參見后面的創(chuàng)建自定義函數(shù)。
系統(tǒng)變量的分類和使用
Authorware所提供的系統(tǒng)變量可以分為以下九大類:
Decision:判定判斷變量。
File:文件管理變量。
Framework:框架管理變量。
General:一般用途變量。
Graphic:圖形控制變量。
Icons:設(shè)計按鈕管理變量。
Interaction:交互管理變量。
Time:時間管理變量。
Video:視頻管理變量。
在系統(tǒng)變量的九大類中,各自還有處理這一類對象的大量變量,下面我們將通過具體實例來學(xué)習(xí)系統(tǒng)變量的使用方法。
1. 在應(yīng)用程序中使用系統(tǒng)變量:
在應(yīng)用程序中使用系統(tǒng)變量,具體的操作步驟如下:
(1) 選擇變量的插入位置:
圖6-5 在【運算】對話框中插入系統(tǒng)變量
① 如果在【運算】設(shè)計按鈕對話框中的某個表達(dá)式和某一函數(shù)中使用變量,則首先將光標(biāo)移動到要插入變量的位置。例如我們要將GetWord()函數(shù)中的String參數(shù)用HotTextClicked系統(tǒng)變量代替,首先在圖6-5中選擇String,然后使用鍵盤來輸入該系統(tǒng)變量的名稱。
② 如果要在一個設(shè)計按鈕的對話框中使用系統(tǒng)變量,則首先需將光標(biāo)移動到要插入變量的地方。例如我們在一個熱區(qū)響應(yīng)類型的【Response】對話框中的【Active IF True:】正文輸入框中使用AltDown系統(tǒng)變量,則首先需將光標(biāo)移動到正文輸入框中要插入該系統(tǒng)變量的地方。如圖6-6所示。
圖6-6 在對話框中插入系統(tǒng)變量的位置
(2) 使用【W(wǎng)indow】菜單中的“Variables”命令,或按快捷鍵Ctrl+Shift+V,打開如圖6-7所示的【Variables】變量對話框。
圖6-7 【Variables】變量對話框
(3) 在圖6-7所示對話框中的變量類型【Category】下拉列表中選擇所使用的變量類型,會在變量名稱顯示框中顯示所有屬于該類型的變量的名稱。如果我們不知道所使用變量的所屬類型,可以選擇該下拉列表中的【All】選項,這樣在系統(tǒng)變量名稱顯示框中將按照字母的順序顯示Authorware所有系統(tǒng)變量的名稱。
(4) 在圖6-7所示變量名稱列表中單擊要使用的系統(tǒng)變量名。
(5) 單擊對話框中的【Paste】命令按鈕,便將該變量使用時的名稱剪貼到前面所指定的位置上。
(6) 【Variables】變量對話框是一個獨立的浮動窗口,如果還要在其它地方使用系統(tǒng)變量,不需要關(guān)閉變量對話框,只需首先選擇要插入系統(tǒng)變量的位置,然后重復(fù)上述操作即可。
(7) 當(dāng)將所有需要插入的變量完成后,使用【Done】命令按鈕關(guān)閉對話框。
注意:
如果讀者對系統(tǒng)變量的名稱和使用方法非常熟悉,則不必使用【Variables】變量對話框來剪貼插入變量,讀者可以直接在圖6-6所示的正文輸入框中直接輸入變量的名稱。
2. 引用變量和查詢指定設(shè)計按鈕中變量的值
在Authorware中,變量的值是隨著程序的執(zhí)行隨時改變的,因此,在程序的不同地方,變量的值有可能不同。在Authorware中,有很多變量允許用戶在一個程序的不同的地方查閱某個設(shè)計按鈕中該變量的值。我們稱這樣的變量為引用變量。
注意:
引用變量的格式為:“變量名”@“設(shè)計按鈕標(biāo)題”。
下面,讓我們用一個簡單的例子來說明引用變量的使用方法。
該實例的內(nèi)容是:使用EntryText變量查閱最終用戶正文輸入響應(yīng)中輸入的正文內(nèi)容,然后在程序的執(zhí)行過程中將用戶輸入的內(nèi)容在適當(dāng)?shù)奈恢弥匦嘛@示出來。
程序的邏輯結(jié)構(gòu)如圖6-8所示。
圖6-8程序的邏輯結(jié)構(gòu)
在程序中我們使用了【交互作用】設(shè)計按鈕中的【正文輸入】響應(yīng)分支結(jié)構(gòu)來讀取用戶輸入的正文,將用戶輸入的內(nèi)容存儲在系統(tǒng)變量EntryText中,在標(biāo)題為“回顯正文”的【顯示】設(shè)計按鈕中創(chuàng)建一個正文對象,在正文對象中插入系統(tǒng)變量EntryText來顯示用戶輸入的信息,插入的形式為“用戶輸入的內(nèi)容為:{EntryText@“輸入”}”,如圖6-8所示。
3. 自定義變量的定義和編輯
雖然Authorware提供了跟蹤所能想象的任何事件的變量,但在很多時候,讀者還是希望創(chuàng)建自己的變量來跟蹤某一特定的內(nèi)容。例如:在創(chuàng)建要求用戶輸入姓名、學(xué)號的一個交互性對話時,用戶可以使用Authorware提供的Username來跟蹤用戶姓名,但你還要創(chuàng)建一個變量來跟蹤用戶的學(xué)號。
在Authorware中,有兩種自定義變量的方法:
方法一:使用新建變量對話框來自定義變量。
如果讀者在運算對話框、展示窗口或?qū)υ捒虻囊粋€區(qū)域中輸入了系統(tǒng)不認(rèn)識的變量,則系統(tǒng)將打開如圖6-9所示的新建變量對話框。
當(dāng)新建變量對話框打開后,用戶需要在對話框中輸入以下內(nèi)容:
(1)【Name】:變量名稱正文輸入框:該區(qū)域顯示的是Autorware不認(rèn)識的變量的名字,在該正文輸入框中,我們要輸入待定義變量的一個具有描述性的名字。例如UserID,該名字能表達(dá)實際的含義,意思是用戶的ID號。而象“a”或“x1”等都不是好的變量命名。
(2)【Initial Value】:初始值正文輸入框:該正文輸入框是可選的。使用該正文輸入框可以為用戶所定義的變量設(shè)置初始值。程序每次開始運行該模塊時都將該正文輸入框中的值如同給Authorware系統(tǒng)變量賦值一樣賦給用戶變量。
(3)【Dispriction】:描述性文本區(qū)域:該輸入框也是可選的。
由于該區(qū)域是可選的,所以經(jīng)常被編程人員所忽略。事實上,該區(qū)域在程序的設(shè)計過程中是非常重要的。
在程序設(shè)計的初期,創(chuàng)建這些變量的程序設(shè)計者可能非常熟悉各變量的含義和使用方法,但是設(shè)計者會發(fā)現(xiàn),程序開發(fā)小組中的其它開發(fā)人員,甚至是創(chuàng)建變量的開發(fā)者自己,在創(chuàng)建變量的幾個月后都不再明白變量的含義和最初創(chuàng)建該變量的目的。所以,為了程序開發(fā)有序性和便于今后理解和使用自定義變量,請讀者在該區(qū)域中盡可能地加以描述。
注意:
關(guān)于自定義變量的數(shù)目,在Authorware中是沒有限制的。但是,在程序的開發(fā)過程中,筆者建議讀者盡可能地限制自定義變量的數(shù)目。變量越少,應(yīng)用程序越容易維護。
方法二:使用【Variables】變量對話框來自定義變量。
在運算對話框、展示窗口或?qū)υ捒虻囊粋€區(qū)域中輸入系統(tǒng)不認(rèn)識的變量之前,我們可以使用【Variables】變量對話框(如圖6-10)來預(yù)先定義一個自定義變量。
圖6-10【Variables】變量對話框
具體的步驟如下:
(1) 在【Catagory】變量類型列表中選擇圖示的文件名,該文件名表示所要定義的變量屬于所選擇的文件。
(2) 單擊【Variables】變量對話框中的【New】命令按鈕,彈出新建變量對話框,如圖6-11所示。
圖6-11 新建變量對話框
(3) 依照方法一,在新建變量對話框中輸入如圖6-11所示的內(nèi)容。
(4) 單擊【OK】命令按鈕結(jié)束新變量的設(shè)置,結(jié)果如圖6-12所示。
(5) 讀者可以使用圖6-12中相應(yīng)的命令按鈕來修改所設(shè)定的變量。
①【Rename】命令按鈕:單擊該命令按鈕,彈出圖6-13所示的【Rename Variable】對話框,在該對話框中來修改變量的名稱。
②【Delete】:刪除命令按鈕:
單擊該命令按鈕,刪除在變量名列表中選擇的自定義變量。
(6) 直接在該對話框中設(shè)置變量的初始值和觀察變量的當(dāng)前值。
(7) 單擊該對話框中的【Done】命令按鈕結(jié)束對新變量的定義。則新定義的變量就可以在Authorware的程序中使用了。
注意:
在【Variables】變量對話框中,Authorware所提供的系統(tǒng)變量在該對話框中是不能修改和刪除的。只要用戶自定義的變量才可以使用修改和刪除命令。
技巧:
【Variables】變量對話框在調(diào)試有大量變量的應(yīng)用程序時是非常有幫助的。我們可以通過使用該對話框來監(jiān)測變量值的變化。
4. 變量的賦值
篇5
關(guān)鍵字:生僻字;字符集;信息處理
漢字的信息處理經(jīng)過多年的摸索,沖破了以前漢字不能進(jìn)入計算機的迷信,取得了可喜的成績,但離能完全滿足實際使用的需要還有很長一段距離。
我們先回顧一下計算機中的字庫,然后討論生僻字的信息處理方法。
一、漢字庫發(fā)展簡介
漢字庫通俗地說就是計算機軟件系統(tǒng)中的漢字倉庫,依據(jù)不同的標(biāo)準(zhǔn),字庫中漢字的數(shù)量是不同的,以前的主要標(biāo)準(zhǔn)有:
1、GB 2312 漢字編碼字符集
從1975年開始,我國為了研究漢字的使用頻度,進(jìn)行了大規(guī)模的字頻統(tǒng)計工作,內(nèi)容包括工業(yè)、農(nóng)業(yè)、軍事、科技、政治、經(jīng)濟、文學(xué)、藝術(shù)、教育、體育、醫(yī)藥衛(wèi)生、天文地理、自然、化學(xué)、文字改革、考古等多方面的出版物,在數(shù)以億計的浩瀚文獻(xiàn)資料中,統(tǒng)計出實際使用的不同的漢字?jǐn)?shù)為6335個,而其中有3000多個漢字的累計使用頻度達(dá)到了99.9%,而另外的3000多個累計頻度不到0.1%,說明了常用漢字與次常用漢字的數(shù)量不足7000個,這就為國家制定漢字庫標(biāo)準(zhǔn)提供了依據(jù)。1980年頒布了《信息交換用漢字編碼字符集—基本集》的國標(biāo)交換碼,國家標(biāo)準(zhǔn)號為:GB2312-80,選入了6763個漢字,分為兩級,一級字庫中有3755個,是常用漢字,二級字庫中有3008個,是次常用漢字;還選入了682個字符,包含有數(shù)字、一般符號、拉丁字母、日本假名、希臘字母、俄文字母、拼音符號、注音字母等。以前我國大陸的各種中文DOS版本、Windows3.1 /3.2版本,裝入的字庫都是國標(biāo)一二級字庫。遇到“镕、啰、瞭、袆、祎、曌、赟、贇、鱻、驫、犇……”等漢字,既無法輸入,又不能打印。
后來國家技術(shù)監(jiān)督局又頒布了一個與之相對應(yīng)的繁體字集,全稱《信息交換用漢字編碼字符集輔助集》,標(biāo)準(zhǔn)號為GB/T12345-90。
2、臺灣 BIG5 字庫
BIG-5碼是通行于臺灣、香港地區(qū)的一個繁體字編碼方案,俗稱“大五碼”。地區(qū)標(biāo)準(zhǔn)號為:CNS11643,這就是人們講的BIG5碼。
BIG-5碼收錄漢字13053個,分為常用字和次常用字兩部分,各部分中的漢字按筆劃/部首排列。其中常用字5401個,包括臺灣教育管理部門頒布的《常用漢字標(biāo)準(zhǔn)字體表》中的全部漢字4808個,臺灣中小學(xué)教科書常用字587個,異體字6個;次常用字7652個,包括臺灣教育管理部門頒布的《次常用漢字標(biāo)準(zhǔn)字體表》的全部漢字6341個,《罕用漢字標(biāo)準(zhǔn)字體表》中使用頻率較高的字1311個。
后來為了協(xié)助解決眾多使用BIG5碼單位于進(jìn)行公文電子傳遞時遇到自造字無法轉(zhuǎn)換CNS的問題,實行了“BIG5碼字集擴編計劃”,1986年7月擴編完成,這就是所謂的“BIG5+碼”。
BIG5+碼系以CNS為藍(lán)本,共增編標(biāo)準(zhǔn)字集4760個字符與推薦字集3250個字符;其標(biāo)準(zhǔn)字集即納編CNS第3字面字集內(nèi)之4145個,第4個字面字集內(nèi)之219個字,均為一般文書常用之中文字,總支持文字量達(dá)141376個
3、大字符集字庫(又叫GBK字庫)
國際標(biāo)準(zhǔn)化組織為了將世界各民族的文字進(jìn)行統(tǒng)一編碼,制定了UCS標(biāo)準(zhǔn)。根據(jù)這一標(biāo)準(zhǔn),中、日、韓三國共同制定了《CJK統(tǒng)一漢字編碼字符集》,其國際標(biāo)準(zhǔn)號為:ISO/IEC10646,國家標(biāo)準(zhǔn)號為:GB13000-90,該漢字編碼字符集就是通常人們所說的大字符集,它編入了20902個漢字,收集了大陸一二級字庫中的簡體字,臺灣《通用漢字標(biāo)準(zhǔn)交換碼》中的繁體字,58個香港特別用字和92個延邊地區(qū)朝鮮族“吏讀”字,甚至涵蓋了日文與韓文中的通用漢字,滿足了方方面面的需要。Windows95/98/NT/2000中都裝入了大字符集漢字庫,人們一般稱它為GBK(“國家標(biāo)準(zhǔn)擴展”的拼音縮寫)字庫。
4、新標(biāo)準(zhǔn)漢字庫
2000年3月,國家信息產(chǎn)業(yè)部和質(zhì)量技術(shù)監(jiān)督局在北京聯(lián)合了《信息技術(shù)和信息交換用漢字編碼字符集、基本集的擴充》,國家標(biāo)準(zhǔn)號為:GB18030-2000,收錄了27000多個漢字,還收錄了藏、蒙、維等主要少數(shù)民族的文字,以期一舉解決郵政、戶政、金融、地理信息系統(tǒng)等生僻漢字與主要少數(shù)民族語言的輸入,該標(biāo)準(zhǔn)于2000年12月31日強制執(zhí)行。 GB 18030-2000 作為 GBK for Unicode 3.0 的更新而誕生,它帶有包含所有Unicode 的擴展,完全向下兼容 GB 2312-1980 和 GBK。
二、對于漢字庫設(shè)計的想法
字集不是越大越好,因為現(xiàn)存于大型字典辭書的字有一部分是歷史用字,還有大量的異體字。根據(jù)使用的需要和研究的情況,對漢字的信息處理可以分為幾個層次
1、日常生活用字:(可有一個人名、地名輔助集和錯字集)
日常生活用字就是常用字,這個數(shù)字可能就在3000字左右,再加上一些次常用字,可能也就在6000字左右,當(dāng)然,其中哪些是常用字,哪些是次常用字,具體的字可能要隨著時代不同而發(fā)生變化。日常生活用字要求有規(guī)范性,現(xiàn)在進(jìn)行的“規(guī)范漢字表”課題研究可能有助于此字集的確定。
人名和地名用字是一個比較特殊的問題,國家語言文字工作委員會正在進(jìn)行“人名、地名規(guī)范”的研究,如果此研究成果面世,則可能有助于解決現(xiàn)代人的人名、地名用字問題。
此集中最好還應(yīng)該有一個錯字集,在早期識字教育和對外漢語教學(xué)中,經(jīng)常要使用到一些錯別字,別字好打,缺筆少劃的錯字沒有辦法處理,所以應(yīng)特置一個錯字集,有利于錯別字教學(xué)的信息化與錯別字的集中糾正。
2、一般古籍整理用字:(應(yīng)該有一個異體字輔助集)
古籍用字,數(shù)量比現(xiàn)代生活用字多。因為歷代沉積下來的異體字、死字比較多。關(guān)于這個問題,首先應(yīng)該進(jìn)行異體字的整理,異體字整理完成后,正體字就可以確定一個數(shù)量。為了保持古籍版本原樣,古籍整理工作者和語言文字研究者也要用到異體字,所以附錄一個異體字集。
還有一個問題就是方言字,很多方言字來源于古代的字典辭書、地方韻書和方言詞典,少部分來源于民間文藝作品。首先方言字有一個規(guī)范的問題,那些有本字又意義比較明確的,應(yīng)該首先選用本字。如本字不明,可沿用俗字。
3、古文字用字:(也有一個異體字輔助集)
關(guān)于古文字,一般定義為小篆以前的文字為古文字,其中有很多字還不可識,這種情況,就首先要區(qū)分出可識字(與小篆或楷書有對應(yīng)字)與不可識字,然后進(jìn)行異體字的整理。并且要能為每個不可識字設(shè)計可以調(diào)用的編碼,以利于檢索。
漢字庫的設(shè)計,針對不同的用戶與使用目的,分級分層次是很必要的。各級之中首先要全,同時要考慮各級之間正體字與異體字、繁體與簡體、古文字與今字的正確對應(yīng)等。
此外,各種常用圖符也可考慮收錄到各級字庫中,如傳世古籍中出現(xiàn)的圈點符號、古文字中的有句讀作用的符號。少數(shù)民族和外域的漢字型變體字,也可考慮單置一類,以有利于文字的比較研究。
轉(zhuǎn)貼于 三、解決方案
以下所使用的操作系統(tǒng),沒有特別指出的為Windows98,字處理軟件則為Word2000。其它則專門指出。
(一)利用GBK漢字集解決生僻字的輸入方法。
微軟從Windows 95(簡體中文版)視窗操作系統(tǒng)起,都采用了GBK字庫,該字庫收字20902個,基本能滿足日常生活用字(生僻人名、地名字除外)。要利用該字庫,通??刹捎孟铝袔追N方法。
1.改用GBK輸入法
Windows 95版本及以后版本提供了 GBK 內(nèi)碼、GBK 全拼、GBK 雙拼、GBK 表形碼和 GBK 鄭碼5種 GBK 輸入法。但這些輸入法不是安裝的默認(rèn)選項,需要從“控置面板”中打開“輸入法”對話框來添加。Windows 98 默認(rèn)安裝全拼輸入法則可以選擇輸入一般漢字和 GBK 漢字(使用該輸入法的屬性設(shè)置)。其它同樣需要安裝。
這些 GBK 輸入法中只有全拼比較常用,而且,這些輸入法所輸入的漢字,包括了 GBK 繁體和 GBK 簡體,數(shù)量非常大,所以造成兩方面的不便:一是重碼率高,選字非常麻煩;二是繁體簡體同時出現(xiàn),有些字不容易分辨繁簡,同時如果不知道字的讀音,也很難選擇拼音輸入法。
現(xiàn)在已有軟件研制商研制出能輸入GBK字庫的五筆字形輸入法,如智能陳橋,對于熟悉五筆輸入法者,比較便利。
2、用Word插入符號的方法
選“插入”菜單中的“符號”命令,在“字體”下拉列表中選“標(biāo)準(zhǔn)字體”(Word97是“宋體”),在“子集”中選“CJK統(tǒng)一漢字”(Word97是“部首及難檢字”)。一般可在列表中找到所需的漢字。雖然該字庫大致是按部首和筆畫進(jìn)行編排的,但查找起來還是相當(dāng)麻煩。以前有萬學(xué)仁先生編有《通用字符集部首表及區(qū)位碼(16進(jìn)制)》[1],有利于查找,如果沒有該部首表,還有一種方法可以采用,先輸入一個與所要輸入的生僻字相同偏旁的漢字,并選中該漢字,然后用鼠標(biāo)單擊“插入”菜單中的“符號”項,此時會彈出“符號”對話框,再用左右方向箭進(jìn)行逐個查找和挑選,就會很快找到該生僻字的。如果是一個獨體字,則可以輸入一個筆畫相同的的獨體字(也不作偏旁)。很快會在其附近找到該字。
(二)GBK字集以外生僻字的輸入
1、使用Windows自帶的“造字程序”
該程序操作簡單,使用方便,既可以用兩個字重新拆分組合成一個新字;也可以選一個相近的字加以修改而造一個新字;還可以直接在編輯框中畫出您所需要的字,比較便利的是前兩種方法,其步驟如下。
(l)取兩個字中有用的部分,重新組合成一個新字。以“腘”字為例(為便于排版,沒有選用GBK以外的字作為例字,下同),單擊“開始”按鈕,選“程序”、“附件”、“造字程序”,出現(xiàn)“造字程序”窗口。在彈出的“選定代碼”窗口中確定所造的字的代碼位置,比如AAA1后按“確定”按鈕(如沒有出現(xiàn),則選“編輯”中的“選定代碼”命令),此時在“造字”窗中出現(xiàn)“編輯”工作區(qū)。再選“編輯”菜單中的“調(diào)用”命令(在Windows2000、XP中則為“復(fù)制字符”命令),單擊“字體”按鈕,選擇字體后,在“形狀”框中輸入?yún)⒖甲帧芭D”,按“確定”按鈕。在“編輯”框中出現(xiàn)“臘”字。再選“窗口”中的“引用”命令(在Windows2000、XP中則為“參照”命令),一樣選定字體,輸入?yún)⒖甲帧皳潯?,在“造字”窗中出現(xiàn)帶有“摑”字的引用框。用“造字”窗左邊的圈選工具圈選“編輯”框中的“昔”,按Del鍵。圈選“引用(參照)”框中的“國”,將它拖到編輯框中合適的位置,然后關(guān)閉“引用”框。再選“編輯”菜單中的“保存字符”命令,在對話框中按“確定”按鈕。
此時該字已經(jīng)建立,如文章中需要用到“腘”字只要將輸入法切換至區(qū)位輸入法,鍵入AAA1,即可出現(xiàn)“腘”字。
如果要在以后能以平時的輸入方法輸入該字,那還要補上下一步操作;選“編輯”中的“輸入法鏈接”命令,如為第一次輸入,將彈出搜索對話框,在文件名輸人框中以英數(shù)方式輸入你常用的輸入法,單擊“打開”按鈕,彈出是否要創(chuàng)建該文件的詢問,單擊“是”。如有多種輸入方法,則依次鍵入不同的輸入法文件名,完成后彈出輸入外碼對話框,輸入該字的外碼(如鏈接了多種輸入法,則有不同輸入法的外碼)。按“注冊”按鈕。但要注意輸入的外碼必須符合該輸入法的規(guī)定,計算機不承認(rèn)你自行定義的外碼。
(2)用相近的字修改。以“臿”字為例:前邊的步驟與前例相同,只是將參考字改為“插”。用上述的方法刪除“插”字的提手旁后圈選“編輯”框中的“臿”,將它向左拖至框的中間,通過調(diào)整八個控制點來改變形狀大小至滿意。以后的操作與上例相同。
該法的優(yōu)點是:不管是否知道該字的讀音,總能通過拆分組合的方法造出來。并且,當(dāng)正確輸入外碼注冊后,平時還能以習(xí)慣的輸入方法輸入該字。缺點在于如果需要將使用了該造字文件的文檔拷貝到其它計算機中,還需要拷貝造字文件。
(3)對于某些類似于圖形的字,可以選用各種工具畫出需要的字形。
2、用Word組字
Word2000的“格式”菜單中有“中文版式/雙行合一”功能,工具欄上有“字符縮放”按鈕,利用它們您可組合一些冷僻字。較之用其他方法要簡便得多,操作方法如下:
(l)對于左右型字體,以“嬿”字為例:輸入“女”字后緊接著輸入“燕”字;選中“女”字,單擊“字符縮放”按鈕,選擇合適的比例(該字可選50%);選中“燕”字,單擊“字符縮放”按鈕,選擇合適的比例(該字可選80%);同時選中“女”與“燕”,選“格式/字體”命令,單擊“字符間距”標(biāo)簽,在“間距”框中選“緊縮”,再單擊“確定”按鈕即可。
(2)對于上下型字體(以“斊”字為例):鍵入“文耳”兩字,然后選中它,在“格式”工具欄上的“字號”框內(nèi)選擇合適的字號(通常輸入“四號”字時可選“小五”號,輸入“五號”字時可選“小六”號。但有時差距可能還要大一些);單擊“字符縮放”按鈕,選擇合適的比例(該字可選200%);選“格式/中文版式/雙行合一”命令,按“確定”按鈕。
采用上法輸入冷僻字要使字型漂亮,對于左右型字關(guān)鍵在于輸入合適的比例;上下型字則在于合適的比例及“大小”框中的數(shù)值,當(dāng)然字號的大小也是十分重要。但此法對于結(jié)構(gòu)復(fù)雜如包圍型、半包圍型、聲(形)占一角型等的字則不適用。采用該法組成的字,還可以作為字符串檢索。
3、如果要經(jīng)常運用到大量生僻字形,則可以選用已有的自造字字庫進(jìn)行插入。
現(xiàn)在已經(jīng)有大型的自造字字庫出現(xiàn),如由日本《今昔文字鏡》研究所制作的《今昔文字鏡》,包括24個TTF格式的矢量字庫,共包括九萬個漢字。其中收錄日本《ISO10646字符集》漢字兩萬個,《大漢和字典》漢字五萬個,其他四萬個漢字包括:甲骨文、梵文、大陸、臺、港漢字、水文、越南字喃、漢字偏旁和造字部件、日文假名、俄文、拉丁文等各種常用字母和符號。適用于WINDOWS95/98/NT為操作系統(tǒng)的各種文字處理應(yīng)用軟件。還提供了一個簡單易用的檢索應(yīng)用軟件。
還有如北師大漢字與中文信息處理研究所研制的《說文小篆輸入法》,能夠輸入所有小篆字形和《說文》所收古文、籀文等字形。
其它還有一些古籍?dāng)?shù)字化機構(gòu)與研究人員也造了各種各樣的字庫,只需要安裝到字體中,就可以顯示打印他們所造的字。此種字庫,如能有統(tǒng)一的規(guī)范與標(biāo)準(zhǔn)就比較好交流使用。并且最好能有一個檢索和輸入字符的相應(yīng)軟件才可資重復(fù)利用。
4、用字體制作軟件制作自己的字庫?,F(xiàn)在已經(jīng)有比較好用的字體制作軟件,如Font Creator Program,如果能熟練使用,則可以自己量身定做自己的字體,優(yōu)點在于可以隨時補充修改。缺點在于自造字庫千差萬別,通用性差。
篇6
1引言
當(dāng)前,由于Linux資源完全公開,使得Linux的發(fā)展日益廣泛快速。基于Linux的各種應(yīng)用已逐漸深入日常生活的方方面面,尤其是在嵌入式領(lǐng)域,由于內(nèi)核可裁減定制,因此可隨意地根據(jù)用戶需求進(jìn)行整個系統(tǒng)的定制與重構(gòu)。其中,我們可以通過對各種標(biāo)準(zhǔn)外部設(shè)備的驅(qū)動進(jìn)行改造,從而實現(xiàn)用戶對標(biāo)準(zhǔn)設(shè)備的特定需求,例如可以通過對鍵盤的模擬來實現(xiàn)操作的自動化,從而可以避免重復(fù)的鍵盤操作。
2Linux內(nèi)核支持的外部調(diào)用接口
由于Linux內(nèi)核作為系統(tǒng)最深層次的核心,因此外部的開發(fā)人員并不能直接對內(nèi)核進(jìn)行操作。然而在一些應(yīng)用程序的開發(fā)過程中,又不得不使用內(nèi)核的某些功能,因此就提供了一些外部接口供開發(fā)人員直接與底層內(nèi)核打交道。
2.1中斷
在Linux下,硬件中斷叫做IRQ(InterruptRequests)。有兩種IRQ,短類型和長類型。短IRQ需要很短的時間,在此期間機器的其他部分被鎖定,而且沒有其他中斷被處理。一個長IRQ需要較長的時間,在此期間可能發(fā)生其他中斷(但不是發(fā)自同一個設(shè)備)。如果可能的話,最好把一個中段聲明為長類型。如果CPU接到一個中斷,它就會停止一切工作(除非它正在處理一個更重要的中斷,在這種情況下要等到更重要的中斷處理結(jié)束后才會處理這個中斷),把相關(guān)的參數(shù)存儲到棧里,然后調(diào)用中斷處理程序。這意味著在中斷處理程序本身中有些事情是不允許的,因為這時系統(tǒng)處在一個未知狀態(tài)。解決這個問題的方法是讓中斷處理程序做需要馬上做的事,通常是從硬件讀取信息或給硬件發(fā)送信息,然后把對新信息的處理調(diào)度到以后去做。
實現(xiàn)的方法是在接到相關(guān)的IRQ(在Intel平臺上有16個IRQ)時調(diào)用中斷處理程序。這個函數(shù)接到IRQ號碼、函數(shù)名、標(biāo)志、一個/proc/interrupts的名字和傳給中斷處理程序的一個參數(shù)。標(biāo)志中可以包括SA_SHIRQ來表明你希望和其他處理程序共享此IRQ(通常很多設(shè)備公用一個IRQ),或者一個SA_INTERRUPT表明這是一個緊急中斷。這個函數(shù)僅在此IRQ沒有其他處理程序或需要共享所有處理程序時才會成功運行。
2.2系統(tǒng)調(diào)用
系統(tǒng)調(diào)用發(fā)生在用戶進(jìn)程,通過一些特殊的函數(shù)來請求內(nèi)核提供服務(wù)。這時,用戶進(jìn)程被掛起,內(nèi)核驗證用戶請求,嘗試執(zhí)行并把結(jié)果反饋給用戶進(jìn)程,接著用戶進(jìn)程重新啟動。一般當(dāng)前系統(tǒng)的系統(tǒng)調(diào)用作為一張表sys_call_table進(jìn)行定義的,是由指向?qū)崿F(xiàn)各種系統(tǒng)調(diào)用的內(nèi)核函數(shù)的函數(shù)指針組成的表。具體參數(shù)參見Linux內(nèi)核源代碼arch/i386/kernel/entry.S文件中:
ENTRY(sys_call_table)
llongSYMBOL_NAME(sys_ni_syscall)
/*0-old"setup()"systemcall*/
llongSYMBOL_NAME(sys_exit)
…
llongSYMBOL_NAME(sys_ni_syscall)
/*streams2*/
llongSYMBOL_NAME(sys_vfork)
/*190*/
2.3鉤子函數(shù)
鉤子(HOOK)是Linux系統(tǒng)中非常重要的系統(tǒng)接口,用它可以截獲并處理送給其他應(yīng)用程序的消息,來完成普通應(yīng)用程序難以實現(xiàn)的功能。鉤子可以監(jiān)視系統(tǒng)或進(jìn)程中的各種事件消息,截獲發(fā)往目標(biāo)的消息并進(jìn)行處理。這樣就可以在系統(tǒng)中安裝自定義的鉤子,監(jiān)視系統(tǒng)定事件的發(fā)生,完成特定的功能,比如截獲鍵盤、鼠標(biāo)的輸入,屏幕取詞,日志監(jiān)視等等。可見,利用鉤子可以實現(xiàn)許多特殊而有用的功能。
3鍵盤工作機理
CPU對外部設(shè)備的管理是通過中斷程序進(jìn)行的,鍵盤也是一種外部設(shè)備,因此,CPU對鍵盤的管理也是通過中斷進(jìn)行的。當(dāng)你擊打鍵盤的時候,鍵盤控制器會向CPU提出中斷申請,CPU響應(yīng)此中斷進(jìn)行處理,這就完成了一次很簡單與人之間通過鍵盤進(jìn)行的交互。
首先,當(dāng)輸入一個鍵盤值的時候,鍵盤將會發(fā)送相應(yīng)的scancodes給鍵盤驅(qū)動。一個獨立的擊鍵可以產(chǎn)生一個六個scancodes的隊列。鍵盤驅(qū)動中的handle_scancode()函數(shù)解析scancodes流并通過kdb_translate()函數(shù)里的轉(zhuǎn)換表(translation-table)將擊鍵事件和鍵的釋放事件(keyreleaseevents)轉(zhuǎn)換成連續(xù)的keycode。例如,''''a''''的keycode是30。擊鍵''''a''''的時候便會產(chǎn)生keycode30。釋放a鍵的時候會產(chǎn)生keycode158(128+30)。
然后,這些keycode通過對keymap的查詢被轉(zhuǎn)換成相應(yīng)key符號。獲得的字符被送入rawtty隊列—tty_flip_buffer。receive_buf()函數(shù)周期性的從tty_flip_buffer中獲得字符,然后把這些字符送入ttyread隊列。
當(dāng)用戶進(jìn)程需要得到用戶的輸入的時候,它會在進(jìn)程的標(biāo)準(zhǔn)輸入(stdin)調(diào)用read()函數(shù)。sys_read()函數(shù)調(diào)用定義在相應(yīng)的tty設(shè)備(如/dev/tty0)的file_operations結(jié)構(gòu)中指向tty_read的read()函數(shù)來讀取字符并且返回給用戶進(jìn)程。
4鍵盤模擬的實現(xiàn)
通常情況下,對鍵盤模擬的實現(xiàn)一般是通過寫一個自己的鍵盤中斷句柄來實現(xiàn),但這種方法容易導(dǎo)致系統(tǒng)崩潰。因此,在這種方法的基礎(chǔ)上可以利用勾子函數(shù)來實現(xiàn)。
如附圖所示,這里主要用到的勾子函數(shù)包括handle_scancode(),put_queue(),receive_buf(),tty_read()和sys_read()等函數(shù)。
附圖鍵盤驅(qū)動原理圖
4.1handle_scancode函數(shù)
handle_scancode函數(shù)是鍵盤驅(qū)動程序中的一個入口函數(shù)(參見文件/usr/src/linux/drives/char/keyboard.c):
voidhandle_scancode(unsignedcharscancode,intdown);
這里通過替換原始的handle_scancode()函數(shù)來實現(xiàn)紀(jì)錄所有的scancode。即將原始的值保存,把新的值注冊進(jìn)去,從而實現(xiàn)所需要的功能,最后再調(diào)用回到原始值的情況下。當(dāng)此新的功能函數(shù)完成后,我們就可以記錄下鍵盤上的正確的擊鍵行為了(其中可以包括一些特殊的key,如ctrl,alt,shift,printscreen等等)。
4.2put_queue函數(shù)
handle_scancode()函數(shù)會調(diào)用put_queue函數(shù),用來將字符放入tty_queue。
put_queue函數(shù)在內(nèi)核中定義如下:
voidput_queue(intch)
{
wake_up(&keypress_wait)
if(tty){
tty_insert_flip_char(tty,ch,0);
con_schedule_flip(tty);}}
4.3receive_buf函數(shù)
底層tty驅(qū)動調(diào)用receive_buf()這個函數(shù)用來發(fā)送硬件設(shè)備接收處理的字符。參見/usr/src/linux/drivers/char/n_tty.c:
staticvoidn_tty_receive_buf(structtty_struct*tty,const
unsignedchar*cp,char*fp,intcount)
參數(shù)cp是一個指向設(shè)備接收的輸入字符的buffer的指針。參數(shù)fp是一個指向一個標(biāo)記字節(jié)指針的指針。在具體的實現(xiàn)中,先保存原始的ttyreceive_buf()函數(shù),然后重置ldisc.receive_buf到自定義的new_receive_buf()函數(shù)來記錄用戶的輸入。
例如:要記錄在終端tty1設(shè)備上的輸入。
intfd=open("/dev/tty1",O_RDONLY,0);
structfile*file=fget(fd);
structtty_struct*tty=file->private_data;
//保存原始的receive_buf()函數(shù)
old_receive_buf=tty->ldisc.receive_buf;
//替換成新的new_receive_buf函數(shù)
tty->ldisc.receive_buf=new_receive_buf;
//新的new_receive_buf函數(shù)
voidnew_receive_buf(structtty_struct*tty,constunsignedchar*cp,char*fp,intcount)
{
logging(tty,cp,count);
//紀(jì)錄用戶擊鍵
/*調(diào)用回原來的receive_buf*/
(*old_receive_buf)(tty,cp,fp,count);
}
4.4tty_read函數(shù)
當(dāng)一個進(jìn)程需要通過sys_read()函數(shù)來讀取一個tty終端的輸入字符時,tty_read函數(shù)就會被調(diào)用。參見文件/usr/src/linux/drives/char/tty_io.c:
staticssize_ttty_read(structfile*file,char*buf,size_tcount,
loff_t*ppos)
篇7
關(guān)鍵詞:服務(wù)器;安全保護
隨著信息技術(shù)的飛速發(fā)展,網(wǎng)站作為宣傳、教學(xué)、交互和辦公自動化等活動不可或缺的平臺已經(jīng)越來越得到重視了。然而訪問網(wǎng)站的群體中有個體會有意無意間攻擊網(wǎng)站服務(wù)器的主體。各類網(wǎng)站服務(wù)器面臨著越來越嚴(yán)峻的安全威脅,怎樣才能更好地“加固”我們的服務(wù)器成為了每個網(wǎng)站安全維護人員所面臨的艱巨任務(wù)。
Web服務(wù)器的安全是web服務(wù)及應(yīng)用的安全緊密有機結(jié)合的整體,通常工作分為兩部分。
一、 服務(wù)器的安全措施
最簡單的就是,提高服務(wù)器的安全意識,養(yǎng)成比較好的日常計算機操作習(xí)慣。服務(wù)器作為計算機廣泛應(yīng)用的重要部分,對計算機簡單的日常維護也是很必需的。對于個人,比如說及時檢查系統(tǒng)漏洞打好系統(tǒng)補丁、升級殺毒軟件更新病毒數(shù)據(jù)庫、定時查殺電腦內(nèi)存等基本工作,并避免移動存儲設(shè)備與網(wǎng)站服務(wù)器直接相連。對于網(wǎng)站來說,對網(wǎng)站及重要的數(shù)據(jù)庫文件進(jìn)行定期備份,多個服務(wù)器之間也可以相互備份。當(dāng)一個服務(wù)器出現(xiàn)軟件或硬件故障時,另一個服務(wù)器可以用來作為臨時的替代。定期分析服務(wù)器日志,及時發(fā)現(xiàn)服務(wù)器軟件和硬件的異常以及攻擊者留下的蛛絲馬跡,以便及時對應(yīng)。借助一些成熟的日志分析軟件,可以有效的提高分析日志工作的效率。
其次是密碼的更改,服務(wù)器操作系統(tǒng)出廠時的安裝一般都是開啟的默認(rèn)狀態(tài),多是些名字如guest的沒用賬號,更不要用administrator這類windows默認(rèn)管理賬戶作為管理員賬戶。以防萬一,最好是建立兩個及兩個以上的管理賬戶,并對他們進(jìn)行嚴(yán)格的賬戶權(quán)限控制,不是非必要情況,不要將整個服務(wù)器予以授權(quán)。其次在設(shè)計密碼時,也要有一定的復(fù)雜性。由于暴力破解密碼的手段和速度越來越快,所以在設(shè)計密碼時,最好是字符、字母、特殊符號、數(shù)字等組合的十二位以上的字符串,并定期更改密碼防治破解。我們在設(shè)計密碼時,為了防止因為定期更換密碼而出現(xiàn)忘記密碼的尷尬情況,可以采用“聯(lián)想法”創(chuàng)造出一些有趣又好記的密碼,比如說“5iskyde**”就可以依據(jù)“我愛天上的星星”而記住。對于程序系統(tǒng)文件,密碼最好采用md5等算法加密后再存儲于數(shù)據(jù)庫。對數(shù)據(jù)庫設(shè)置密碼或采用其他工具加密,也可以使得攻擊者在得到數(shù)據(jù)的情況下,也不能很輕易的就破解使用。
再次,盡量不用服務(wù)器瀏覽網(wǎng)頁,尤其是不可信任的網(wǎng)站,而且盡量避免與服務(wù)器不相關(guān)的軟件,尤其是一些黑客或黑客學(xué)習(xí)軟件或破解軟件。對于程序系統(tǒng)中的數(shù)據(jù)庫文件名最好摻雜一些特殊符號,成為較復(fù)雜不易猜中的文件名。同時將數(shù)據(jù)庫文件擴展名改成asp或asa,防止他人下載。
最后,做好服務(wù)分屬和保留地址。企業(yè)內(nèi)的服務(wù)通常有DNS服務(wù)、FTP服務(wù)等,對于重要的不同的服務(wù)最好是分屬開來,實行單一化管理,避免多項服務(wù)對服務(wù)器造成影響,增加自身運行壓力。服務(wù)器要保留一部分地址只供服務(wù)器使用,并將這些IP地址和服務(wù)器的MAC地址綁定,因為服務(wù)器的地址分為永久不被侵占性和完全不受控制性,這樣就可以避免服務(wù)器地址被占用而造成服務(wù)中斷。
二、 web的安全
1、 優(yōu)化ⅡS設(shè)置
更改ⅡS日志路徑避免使用默認(rèn)的缺省路徑,雖然默認(rèn)的報錯信息給管理人員在檢查和修正網(wǎng)頁錯誤的時候帶來了極大的方便,但是同時也給伺機尋找asp程序漏洞的攻擊者提供了非常重要的信息。就算要使用默認(rèn)的web站點,也要將ⅡS目錄與系統(tǒng)磁盤分開了再用。在配置應(yīng)用程序映射時,只保留asp、cgi、php、pl應(yīng)用擴展名,其他所有不必要的應(yīng)用程序擴展都刪除。
2、MySQL安全設(shè)置,檢查mysq1.user表, 關(guān)于shutdown_priv, process_priv, File_priv和reload_priv的權(quán)限可能泄露重要的服務(wù)器信息,所以盡量取消。對于mysql安全目錄,限制user讀取、列目錄和執(zhí)行的權(quán)力。
3、Serv-U的安全技術(shù)
現(xiàn)今Windows操作系統(tǒng)下最流行、使用最方便、功能最齊全、目前國內(nèi)應(yīng)用最多的FTP服務(wù)器軟件之一就是FTP Serv-U。FTP是虛擬主機的一部分,所以可以通過更改Serv-U FTP服務(wù)器的服務(wù)帳戶來加強安全級別。Serv-U有一個默認(rèn)的System啟動的管理用戶,通過一個能訪問本地端口43958的賬號,任何人都可以執(zhí)行任意內(nèi)部和外部命令和隨意增刪賬號。解決的辦法可以是設(shè)置一個用于啟動Serv—U服務(wù)并屬于Guests組的用戶,從而設(shè)置Serv-U服務(wù)登陸設(shè)置、IIS網(wǎng)站和注冊表設(shè)置文件夾權(quán)限。
篇8
當(dāng)藝術(shù)批評界開始把談?wù)摲枌W(xué)當(dāng)作一種時髦的時候,可能并沒有充分意識到符號學(xué)與語言學(xué)的關(guān)系。瑞士學(xué)者索緒爾(1857-1913年)既是符號學(xué)的奠基人,又是現(xiàn)代語言學(xué)的創(chuàng)始人,他提出要創(chuàng)建一門研究符號(希臘詞是semeion)的科學(xué):符號學(xué)(semiology),并建議把語言學(xué)當(dāng)作這門一般科學(xué)的一部分[1]。在索緒爾看來,語言符號是符號中的一種,除了語言符號外,還存在大量的社會符號,如手勢,象征儀式,禮節(jié)形式,軍用信號等。在索緒爾之后,符號學(xué)家們不僅研究語言符號,而且也對非語言類的社會符號進(jìn)行了研究,如羅蘭·巴特(1915-1980年)把符號學(xué)用于服裝、廣告等對象,為符號學(xué)進(jìn)入藝術(shù)設(shè)計領(lǐng)域提供了范例和先導(dǎo)。
國內(nèi)一些理論家提出,可以把符號學(xué)引入書法研究。符號學(xué)是研究符號的,對于書法來說,最明顯的符號莫過于書法賴以滋生的漢字系統(tǒng)。無論如何演變,書法的基礎(chǔ)終歸都是漢字。相對于其他的符號系統(tǒng)來說,文字符號恐怕是和語言的關(guān)系最為貼近的。漢代和清代的文字研究已經(jīng)發(fā)展到較高的水平,東漢許慎編寫的《說文解字》收錄了9353字,加上重文共10516字,十八世紀(jì)編撰的《康熙字典》則收錄了47043字[2],可以說,古代的學(xué)者就像熟悉后院的花草一樣熟悉每一個字。然而,熟悉字體、字形、字義和字音的每一個演變,并不代表古代人對漢字的起源和發(fā)展有一個科學(xué)的認(rèn)識。漢代學(xué)者對漢字符號作了不少理論探討,其中最著名的是六書說,也即把漢字的構(gòu)字法分析為指事,象形,形聲,會意,轉(zhuǎn)注,假借這六種。但是,不管是對漢字起源的猜測,還是對漢字構(gòu)造的研究,如果離開了對語言的系統(tǒng)研究,那都還是有尾無首的。例如,要研究漢字的起源,我們必須懂得只有當(dāng)某種符號用于系統(tǒng)地記錄語言時才可把它稱為文字;又如,要想研究漢字的構(gòu)造,我們首先得把“作為語言的符號的文字”和“文字本身所使用的符號”這兩個層次明確地區(qū)分開來[3]。經(jīng)過索緒爾等先驅(qū)的倡導(dǎo),這都是現(xiàn)代語言學(xué)里的常識了。寫作本文的目的,可以說是在中國書法界引入符號學(xué)之后,補充談一點語言學(xué)的常識。從這些常識出發(fā),我們或許會對書法的性質(zhì)和書法的未來形成某種新的認(rèn)識。
(二)
前面已經(jīng)說過,索緒爾把語言學(xué)看成是符號學(xué)的一部分。在這里,我們不妨把研究語言符號的符號學(xué)稱之為語言符號學(xué),并把文字學(xué)也囊括在它的范圍內(nèi)。我們的第一個問題是,索緒爾或后來的符號學(xué)家所說的符號究竟是指什么?接下來,我們還會問,語言符號的特性是什么?文字符號(尤其是漢字)又有哪些獨特之處?
無論在中文還是在西語中,和“符號”意思相近的詞均不在少數(shù),有人把symbol說成是符號學(xué)的對象,有人把sign說成是符號學(xué)的對象,在漢語里,“記號”、“符號”或“指號”都是可供選擇的表達(dá)。不過在這里,我們沒有必要在詞句上爭來爭去。索緒爾把符號看作是能指(signifiant,signifier,也譯施指)和所指(signifié,signified)的結(jié)合,所謂的能指,就是用以表示者,所謂的所指,就是被表示者。拿玫瑰花來說,玫瑰的形象是能指,愛是其所指,兩者加起來,就構(gòu)成了表達(dá)愛情的玫瑰符號。索緒爾把符號看作能指和所指的結(jié)合,和一般人對符號的用法是一致的:符號是用一個東西來指另一個東西。陳嘉映先生說,“凡有所表征的,都可以稱為‘符號’”[4],李幼蒸先生說,“一般記號就是‘代表另一物的某物’”[5],這些說法大同小異。
我們把自然物和符號分開來的一個通用標(biāo)準(zhǔn)是:代表他事他物,還是無所代表[6]。桌子就是桌子,我們用它吃飯、寫字、放東西,也可以把它做成各種式樣,但終究不說它代表了別的什么東西;可是在某些特殊情況下,我們也可以把某種樣式的桌子看作是某個文化的代表,這時候的桌子就變成了符號。人們通常不習(xí)慣把桌子或石頭稱作符號,卻覺得烏云和大雁可以叫做符號,其原因可能在于,前者通常不被用來意指他事他物,而后者的意指在生活中逐漸被固定下來,烏云壓天是暴風(fēng)雨的征兆,大雁南歸暗示季節(jié)的變換,在文學(xué)和電影中,烏云和大雁還可以有其他固定的象征含義。
符號學(xué)研究的是符號,根據(jù)能指和所指所構(gòu)成的關(guān)系類型,符號學(xué)對符號進(jìn)行分類。在這里,又是索緒爾提出了一個關(guān)鍵性的分類準(zhǔn)則:任意性原則。語言符號的能指是語音,所指是概念(意義),用哪個聲音來代表哪個概念,這是任意的。所謂任意的,也就是沒有道理可講的,例如,漢語里用“馬”這個聲音來代表馬,英語里卻用horse,不管是“馬”還是“horse”,它們的聲音都不會和它們所指的東西有任何相像之處。相反,玫瑰花,烏云和大雁,它們之所以能有所表征,卻是有一定道理可講的(盡管這道理并不是對所有的文化都有效),具體來說,玫瑰花和熾烈的愛情有相像之處,烏云和大雨有時間上的鄰近,這些能指和所指之間,帶有某種可感的聯(lián)系。從根本上來說,人類社會里的任何一個符號都帶有某種程度的約定性或者說任意性,只不過有的約定是人為的、強制的(如紅綠燈,國旗,人工語言),有的約定是天然的、自發(fā)的(如北斗星,玫瑰花,自然語言)。語言符號代表了約定性或者說任意性最強的那一端,它的符號性是最強的。紅綠燈和烏云相比,任意性更強,但和語言相比,卻又更弱。一個人若是不知道紅綠燈的含義,至少可以看出是紅燈在亮,還是綠燈在亮;一個人若是不懂阿拉伯語,那就只能聽到一串稀奇古怪的音響。
語言是對世界的一種劃分,不同的語言可以有不同的劃分方式,這是在所指這個層面上講的。語言所使用的“能指”是人的嗓音,這些音響形式只要能滿足聲帶的基本條件而且彼此之間能清楚地區(qū)分開來(如,元音a區(qū)分于輔音p),就能夠很好地配合“所指”完成任務(wù)。交通燈選擇紅、綠、黃這三個容易區(qū)別的顏色,也包含著這層道理。不過,紅綠燈的所指(禁止與通行)十分簡單,而語言的所指(概念)卻是高度復(fù)雜,且彼此間成系統(tǒng)的。我們常說,語言就是世界,或者說,我們無法超越語言去想象世界,說的就是語言的系統(tǒng)和大全。
每種語言都以特有的、“任意的”方式把世界分成相互聯(lián)系的概念和范疇[7]。語言的奧秘完全在所指這個層面上。但是,總得有一個手段把語言的能耐給體現(xiàn)出來,這就是人類的聲音。人類“選擇”聽覺形象而不是視覺形象作為語言的第一載體[8],自有生理學(xué)和物理學(xué)上的原因,在這里我們只得尊重這個事實。語言的產(chǎn)生遠(yuǎn)遠(yuǎn)早于文字的產(chǎn)生,至少在兩百多萬年前地球上已出現(xiàn)了語言現(xiàn)象,可考的繪畫活動出現(xiàn)在歐洲和亞洲的冰河期的晚期,距今四萬五千年到一萬二千年左右[9],而文字的產(chǎn)生與發(fā)展,卻是與短短五、六千年的文明史同步的。只有牢記這個語言學(xué)事實,我們才不至于誤解文字的本性。
(三)
在古代中國,讀書識字是社會地位的一個重要標(biāo)志。書面語是雅的,口頭語是俗的,對于一個喜歡讀書寫字的中國人來說,索緒爾的話難免有點刺耳――“語言和文字是兩種不同的符號系統(tǒng),后者唯一的存在理由是在于表現(xiàn)前者”[10]。
對于中國的語言學(xué)家來說,文字是用以記錄語言的符號早就是一個常識了??芍钡浇裉鞛橹?,我們中的有些人還在說漢語是象形文字或圖畫文字,或變相地在論點中默認(rèn)這個前提。無論是字母,還是圖畫,只要它們被用以系統(tǒng)地記錄語言,它們就不再保持它們原來的性質(zhì)。它們變成了語言的第二符號,它們的意義完全是語言賜予的。原則上來說,不管它們本身有意義(象形),還是無意義(字母),只要它們能夠相互區(qū)分,而且不過于復(fù)雜的話,就可以起到記錄語言的作用。在這里需要特別搞清楚的一點是,即使是古漢字里比較典型的象形字,如日、人、射,也首先是對語音的一種記錄,其次才是對太陽、人和射的圖解和暗示。
如果僅僅想表示天上的那個太陽,我們完全可以用更形象的方式去表達(dá),而不必在圓圈中加個點。反過來說,如果圖畫記事能滿足一切需要的話,我們何必去另造一套文字?在這一點上,裘錫圭先生不愧是大家,他說,“按照一般的想法,最先造出來的字應(yīng)該是最典型的象形字”,可是,“人們最先需要為它們配備正式的文字的詞,其意義大概都是難于用一般的象形方法表示的,如數(shù)詞、虛詞、表示事物屬性的詞,以及其它一些表示抽象意義的詞。此外,有些具體事物也很難用簡單的圖畫表示出來。例如各種外形相近的鳥、獸、魚、草、木等,各有不同的名稱,但是要用簡單的圖畫把它們的細(xì)微差別表現(xiàn)出來,往往是不可能的。”[11]
實際上,遠(yuǎn)在漢代,就已經(jīng)有學(xué)者指出漢字不全是象形文字[12]。不過,這些學(xué)者并沒有明確區(qū)分“作為語言的符號的文字”和“文字本身所使用的符號”(也即“字符”)這兩個層次。象形,形聲,會意,假借等區(qū)分都是就后一層次而言的??墒牵词故窃谶@個層次上,漢字的語義和象形的聯(lián)系也是越來越弱的。
在成熟的文字系統(tǒng)中,文字與語言是完全匹配的。試問,一個語言中能夠用象形圖畫加以表現(xiàn)的概念能有多少呢?通過挪用象形圖畫而造就的文字,絕不會超過這個數(shù)目。據(jù)專家統(tǒng)計,在甲骨文里,會意字占22.33%弱,形聲字占27.27%弱,象形字只占22.53%強[13]。漢字形成完整的文字體系后,新造的象形字越來越少見,那些由圖畫演變而來的字符,要么喪失其形象變?yōu)楸砹x或表音的單純記號,要么以形符或義符的身份參與到新字的構(gòu)成中去。形聲字是漢語造字的主要手法[14],實際上,形聲字里的“形”從本質(zhì)上是與義符而不是和形符相聯(lián)系的?!傍B”是“鶏”的義符,義符既可以帶有形象,也可以不帶任何形象,即使原來帶有形象,也會趨向于消失[15]。圖畫與文字在文字發(fā)展的原始階段可以結(jié)合,也可以混用,然而文字一旦成熟,勢必會和圖畫分家[16]。
嚴(yán)格地來說,在連續(xù)的上下文中,我們并不是因為看到一個字長得像太陽而推斷出它的意思,而是因為我們先就知道它有太陽的意思,才覺得它同時也長得像太陽。早在周代的金文那里,如果不特加提示的話,我們基本不可能從馬、魚等字的字形中猜出它們的意思。實際上,即使是在最為象形的文字中,我們也無法完全避免歧義。誰知道族名金文中的“馬”字是一頭驢還是一只什么別的動物呢?再說,最早的圖畫字也不全是象形的,也有由抽象的幾何圖案變來的。具象圖畫、抽象紋樣和文字,完全是三樣不同的東西,它們各有各的宿命。依類象形可能是巫史階層造字的真實動機,可文字一旦交付百姓使用,像與不像就變得完全不重要了,這一點在隸書上體現(xiàn)得再清楚不過。實際上,“如果秦國沒有統(tǒng)一全中國,六國文字的俗體遲早也是會演變成類似隸書的新字體的”[17]。
如上所述,我們既不能說漢字是象形文字,也不能把圖形在漢字的形成過程中的意義看得過于重要。我們甚至也不能說漢字是“表意文字”。裘錫圭先生說,各種文字的字符,大體上可以歸納為三大類[18],即意符(包括形符和義符),音符和記號,跟文字所代表的詞在意義上有聯(lián)系的字符是意符,在發(fā)音上有聯(lián)系的是音符,在發(fā)音和意義上都沒有聯(lián)系的是記號[19]。拼音文字只使用音符[20],漢字則三類符號都使用,所以漢字應(yīng)稱之為意符-音符-記號文字[21]。
漢字記錄語音的方式可能與英語不同,但這和它是否象形文字或是否含有形符毫無本質(zhì)關(guān)聯(lián)。我們的確可以用圖畫來指物象形,描摹世界,但只要想到語言早在兩百萬年前就已經(jīng)把綿延的事件之流分節(jié)成相互勾連的環(huán)節(jié),從而使“世界”成為圖畫般可以描繪的[22],我們就不必為區(qū)區(qū)幾千年的漢字史里的象形問題而煩惱了。
(四)
從隸書甚至篆書開始的漢字,已很難直接和象形掛上鉤。也許有學(xué)問的書法家會為漢字所包含的具象因素而激動,但他們得認(rèn)識到,這些類似于闌尾的東西不過是早期文字實驗失敗后留下的痕跡。對于那些想當(dāng)然的書法家來說,他們最好能夠知道,把“舞”字寫成跳舞的美女,和“持牛尾而舞”的原始圖形沒有絲毫的聯(lián)系。如果偏好把字寫成畫的話,他們干嘛不直接去畫人體寫生呢?
如上所述,漢字的構(gòu)造過程中發(fā)生過兩次挪用,第一次是把圖像挪用為文字,第二次是把象形字挪用為音符、意符或記號?,F(xiàn)在我們知道,成熟時期的漢字構(gòu)字法基本上是沒有象形的地位的。實證研究表明,“漢字形成完整的文字體系之后,新增加的字多數(shù)是通過加偏旁或改偏旁等途徑從已有的字分化出來的。”[23]因為要和語言相匹配,漢字最終放棄了圖解世界的企圖。不過,漢字的確不是語音的奴仆。作為一個和拼音文字同樣完美的系統(tǒng),漢字不僅有著獨特的構(gòu)字法則,而且有著獨具價值的造型潛質(zhì)。
漢字寫起來很麻煩,但其偏旁、部件和筆劃有限,筆順也是一定的,漢字符號系統(tǒng)達(dá)到的這種有序性令人嘆為觀止,但又難以清晰地加以表述。王羲之的《蘭亭序》確立了行書的典范,這份字帖并沒有收錄足夠多的漢字,但它的臨摹者卻可以推而廣之,把每一個漢字都寫成王氏行書。書法系統(tǒng)的有序性無疑是以漢字系統(tǒng)的高度有序性為基礎(chǔ)的。書法家的字帖和帳房先生的書信,毛筆書法和硬筆書法,繁體字和簡體字,它們之所以能保持某種連續(xù)性,不是因為它們是隨心所欲的文字畫,而是因為它們是對自成系統(tǒng)的文字符號的書寫。英語的構(gòu)詞法無疑也具有某種可理解的有序性,但這和26個字母的寫法沒有直接的聯(lián)系。在抄寫和印刷的過程中,字母也能寫出優(yōu)美的風(fēng)格,但它們每發(fā)生一次整體變化,畢竟只能造成26種視覺差異。
漢字可考的歷史只有三千三百年[24],但這三千三百年的歷史,是同一種語言連續(xù)書寫的歷史。從古文字到隸、楷、行、草,無論是從字體,字形,還是從字的風(fēng)格造型,每一個新的差異,無不建立在與以往微妙的相似中。書法的歷史遠(yuǎn)比文字學(xué)的歷史要寬容,它不僅容納正確的東西,也容納錯誤的東西。而在以藝術(shù)而不是以實用為目的的書寫中,文字有權(quán)變得和語言若即若離。漢字在和語言的匹配過程中,發(fā)展出了一套高度有序的偏旁、筆劃體系,這套體系即使脫離了漢語,也一樣具有漢字的魅力。日本的書法,的天書,都是這種類型的東西。它們不是因為和漢語言相匹配而成為書法,而是因為和歷史上的漢字具有系統(tǒng)性的相似。把單個的漢字放大,把寫好的字揉成字球,這些舉動貌似背離傳統(tǒng),實際上恰好是建立在傳統(tǒng)的基礎(chǔ)上的。
當(dāng)然,在傳統(tǒng)中進(jìn)行創(chuàng)作和利用傳統(tǒng)來進(jìn)行創(chuàng)作是全然不同的。明眼人都看得到,老祖宗傳下來的東西,就像野生動物的物種那樣,在一天一天、一小時一小時地離我們而遠(yuǎn)去。
(五)
一般的書法理論往往從審美特性這個角度出發(fā)來總結(jié)書法的成就,本文并不否認(rèn)這種探索的意義。但是,當(dāng)我們過多地把目光集中在書法之“美”或書法所激起的“審美體驗”上時,卻往往忽視了書法和寫字之間的樸素聯(lián)系。
我們覺得書法是藝術(shù)的,而寫字卻是實用的,可是說到頭,書法家不過是無窮無盡的寫字者中的一員。書法家卓然獨立,只是因為他把某個字體寫到了極致,從而使它具有典范的意義。人們常常在“永恒”或“超時空”這個意義上來理解典范,殊不知典范的一個更為素樸的含義卻是“榜樣”??鬃邮侨烁竦陌駱?,顏體是書法的榜樣。桃李不言,下自成蹊。沒有“群眾”的爭相效仿,哪有高樓可以獨上?
書法家從不空穴來風(fēng)。在書法家的書法[25]產(chǎn)生之前很久,漢字已經(jīng)在集體書寫的基礎(chǔ)上形成了自己的形態(tài)。無論是無名氏還是書法家,為了書寫漢語和漢字,都不得不首先遵從漢字的規(guī)則。漢字是一套高度有序的符號系統(tǒng),從原則上來說,要想把握一個字的間架結(jié)構(gòu),就不得不把握所有字的間架結(jié)構(gòu)。一輩子只會畫自己名字的書法家不僅沒有聽說過,而且也是極其可笑的。
符號學(xué)美學(xué)關(guān)心漢字和書法的有序性。承認(rèn)書法之美依賴于漢字符號系統(tǒng)的有序性,并不會削弱我們對書法藝術(shù)家獨創(chuàng)性的評價。在西方傳統(tǒng)美學(xué)的影響下,我們把創(chuàng)作者的迷狂狀態(tài)看得過于神秘了。許多人覺得,不管是在作者那里,還是在讀者那里,都有一種全然不同于日常經(jīng)驗的“審美經(jīng)驗”(aesthetic experience)在起作用。然而,籠而統(tǒng)之用“審美經(jīng)驗”來說事,非但不能增加藝術(shù)性,反而會敗壞具體而微的藝術(shù)感覺。相形之下,用“龍?zhí)扉T”、“高峰墮石”、“夏云舒卷”來形容書法的古人,反倒要離事情本身更為接近。
我們常常把審美經(jīng)驗理解為主觀的感受。然而,好的感覺(good sense)從來都是在和事物打得火熱的過程中體現(xiàn)出來的。偉大的書法家不僅善于和筆墨紙硯打交道,而且善于和漢字打交道?,F(xiàn)在我們已經(jīng)知道,作為書法基本造型“材料”的漢字,既不是象形的圖畫,也不是抽象的圖案,而是一套具有極強抽象性和系統(tǒng)性的符號。漢字對于文字學(xué)家來說是一種符號,對于書法家來說,卻是一種質(zhì)料。書法家并不關(guān)心如何在理論上把握文字的符號性,他們關(guān)心的是這些符號性的文字如何從感性上得以生動的顯現(xiàn)。就跟玫瑰花不會被它的所指(愛情)耗盡一樣,在以寫字為美的文化生活形式中,文字的能指也不會被它的所指耗盡――人們在讀懂字義的同時,也停留在字的表面,琢磨如何把字寫得更好。
然而,在當(dāng)今這個時代,漢字越來越成為一種單純?yōu)檎Z言服務(wù)的記號。數(shù)碼化的漢字固然也保留了各式各樣的字體,甚至各式各樣的書法式樣,但是今日之大眾并不打算去臨摹它們,而是更愿意像揀字工人那樣消耗它們。無論是五筆型,還是拼音輸入法,都是依賴某種檢索系統(tǒng)把事先準(zhǔn)備好的漢字一個一個揀出來。用筆來書寫漢字,卻沒有這么現(xiàn)成。寫字的人不僅一筆一劃都不能漏過,而且在每一個筆劃上都存在著勝負(fù)生死的可能。書法家是精益求精的寫字人,和揀字工人不同,他從不把漢字看作現(xiàn)成的可以消耗的材料,而是看作不確定的、需要反復(fù)加以形成的東西。文字是書法家所利用的質(zhì)料,但是好的書法作品非但“不會使質(zhì)料消失,倒是才使質(zhì)料出現(xiàn)”[26]。金匠的任務(wù)是使金屬熠熠生輝,畫家的任務(wù)是使顏料發(fā)光,詩人的任務(wù)是使聲音朗朗可聽,書法家的任務(wù)又是什么呢?
當(dāng)電腦鍵盤摧毀了書法賴以生長的廣闊的民間土壤時,漢語和漢字并沒有隨之消亡,但是,書寫漢語的活動在某種意義上已經(jīng)終結(jié)了。一方面,漢字變得越來越像是純粹的記號,另一方面,書法變得越來越像脫離語言的圖像。這是一件事情的兩個方面。
2003年6月21日
注釋:
[1] 索緒爾,《普通語言學(xué)教程》,商務(wù)印書館1996年,第38頁。
[2] 裘錫圭,《文字學(xué)概要》,商務(wù)印書館1998年,第30-31頁。
[3] 裘錫圭,《文字學(xué)概要》,商務(wù)印書館1998年,第10頁。
[4] 陳嘉映,《語言哲學(xué)教程》,北京大學(xué)出版社2003年,第1章,第7節(jié)。
[5] 李幼蒸,《理論符號學(xué)導(dǎo)論》,社會科學(xué)文獻(xiàn)出版社1999年,第46頁。
[6] 趙元任先生曾說,“符號之所以為符號,并不是從符號的本身上可以看得出來的,是看這事物有所代表沒有,假如某事物是代表他事物的,無論兩者是屬何性質(zhì),前者就叫后者的符號,后者就叫前者的對象。所以符號與對象,猶如師生父子等相對的名詞,不是絕對的名詞?!币娳w元任《符號學(xué)大綱》(1926年)。
[7] 陳嘉映,《語言哲學(xué)教程》,北京大學(xué)出版社2003年,第5章,第2節(jié)。
[8] 注意,并不是心里先有了一套概念系統(tǒng),再配上聲音,能指與所指是同步生長起來的,如陳嘉映先生所言,“幼兒牙牙學(xué)語,他的聲音一開始沒有意義,后來有了意義,這不是后來把意義附加到了聲音上面,而是聲音生長成為有意義的聲音”。見陳嘉映,《語言哲學(xué)教程》,北京大學(xué)出版社2003年,第5章,第2節(jié)。
[9] 參見朱狄,《藝術(shù)的起源》,中國青年出版社1999年。
[10] 索緒爾,《普通語言學(xué)教程》,商務(wù)印書館1996年,第47頁。
[11] 裘錫圭,《文字學(xué)概要》,商務(wù)印書館1998年,第2頁。
[12] “倉頡之初作書也,蓋依類象形,故謂之文。其后形聲相益,即謂之字。文者,物象之本;字者,言孳乳而寖多也。著于竹帛謂之書。書者,如也。”見許慎《說文解字序》。
[13] 李孝定,《中國文字的原始與演變》,載《漢字的起源與演變論叢》,臺灣聯(lián)經(jīng)出版事業(yè)公司1986年,第136頁。
[14] 裘錫圭,《文字學(xué)概要》,商務(wù)印書館1998年,第32頁。
[15] 雞字的具體演化過程,見裘錫圭《文字學(xué)概要》,第151頁。
[16] 我們發(fā)展哪套文字來標(biāo)記語言是任意的,沒有道理可講的,但是一套文字如何演化和改進(jìn),卻有很多局部的道理可講。拿漢字來說,形聲字便于記憶,筆劃的平直便于書寫,這都是漢字演進(jìn)過程中的道理。象形字為何衰微,恐怕也是有道理可講的,只不過講起來會牽扯太多的問題。
[17] 裘錫圭,《文字學(xué)概要》,商務(wù)印書館1998年,第69頁。
[18] 注意,這三大類都是在“文字本身所使用的符號”這第二個層次上說的,意符(包括形符和義符)的意思是當(dāng)作意符來構(gòu)字,音符的意思是當(dāng)作音符來構(gòu)字,記號的意思是當(dāng)作記號來構(gòu)字。從第一個層次來說,任何一個字符都是一個“任意性”的記號,和它結(jié)合在一起的既有語音,也有概念。
[19] 裘錫圭,《文字學(xué)概要》,商務(wù)印書館1998年,第11頁。
[20] 只要不過于狹隘地理解字符(例如,不把拼音文字的字符理解為單個的字母,而是理解為字母的組合),拼音文字也同樣可以看作是由這三類字符來構(gòu)詞的(形符除外)。以法語為例,法語沒有字這個層次,只有詞這個層次,與漢語里的構(gòu)字法相對應(yīng)的是法語里的構(gòu)詞法。在法語里,字母的組合用以表音,帶有獨立語義的詞干、詞綴經(jīng)過組合可以造出新詞,不帶獨立語義、且喪失表音功能的字母組合則可視為裘先生所說的記號。拼音文字和漢字雖然長得很不一樣,但只要建立了合適的平臺,也一樣是可以比較的。
[21] 裘錫圭,《文字學(xué)概要》,商務(wù)印書館1998年,第18頁。
[22] 參見陳嘉映,《信號、句子、詞》,載《思遠(yuǎn)道》,福建教育出版社2000年。
[23] 裘錫圭,《文字學(xué)概要》,商務(wù)印書館1998年,第32頁。
[24] 裘錫圭,《文字學(xué)概要》,商務(wù)印書館1998年,第28頁。
篇9
當(dāng)用戶填寫頁面內(nèi)容時所提供的全部值,或在瀏覽器地址欄輸入在url后的值,通過form和querystring集合為asp腳本所用。這是在asp代碼中訪問值的一種簡單方法。
1、 訪問asp集合的一般技術(shù)
大多數(shù)asp集合與在vb中見到的普通集合相差不多。實際上,它們是值的數(shù)組,但能通過使用一個文本字符串鍵(對大小不敏感)以及一個整型索引進(jìn)行訪問。因此,假如客戶端web頁面包含的如下:
firstname:
lastname:
可通過訪問asp的form集合來訪問其控件內(nèi)的值:
strfirstname = request.form(“firstname”)
strlastname = request.form(“l(fā)astname”)
也可使用窗體中控件的整型索引,索引的范圍從在html中第一個定義的控件開始,然后根據(jù)定義的順序排序:
strfirstname = request.form(1)
strlastname = request.form(2)
然而,后面的這種以整型為索引的技術(shù)不推薦使用,因為一旦有html中的控件發(fā)生了變化,或者插入一個新的控件,則asp代碼將得到錯誤的值。進(jìn)一步而言,對于閱讀代碼的人來講,極容易混淆。
1) 訪問集合的全部值
可以通過引用集合把整個form上的一系列值變成單個的字符變量,且不用提供鍵或索引。
strallformcontent = request.form
假如文本框包含值priscilla和descartes,則request.form語句將返回下列字符:
firstname=priscilla&lastname=descartes
注意,提供的值是以名稱/值對的形式出現(xiàn)的(即控件名稱=控件值),并且每一對名稱/值相互之間是用符號“&”相分隔的。假如打算把窗體中的內(nèi)容傳遞單獨的,希望得到值的標(biāo)準(zhǔn)格式的可執(zhí)行應(yīng)用程序或dll,這個技術(shù)是很有用的。然而,一般說來,都是通過以窗體中控件的名稱為文本鍵來訪問集合中的內(nèi)容。
2) 遍歷一個asp集合
有兩種方式遍歷一個asp集合中的所有成員,方式與普通vb集合的基本相同。每個集合提供一個count屬性,返回的是集合中條目數(shù)量??赏ㄟ^使用一個整型索引使用count屬性來遍歷。
for intloop=1 to request.form.count
response.write request.form(intloop) & “
”
next
假如先前的窗體包含priscilla和descartes值的兩個文本框,將得到如下結(jié)果:
priscilla
descartes
然而,更好的方法是使用for each...next結(jié)構(gòu)。
for each objitem in request.form
response.write objitem & “=” & request.form(objitem) & “
”
next
這帶來的好處是既可以訪問控件的名稱又可訪問其值。上述代碼將得到如下結(jié)果:
firstname = priscilla
lastname = descartes
注意,一些瀏覽器返回到asp的值可能與頁面上顯示的順序不盡相同。
3) 集合成員的多值性
在某些情況下,asp集合中的各個成員可能不止一個值,這種情況發(fā)生在html定義中有幾個控件有相同name屬性時。例如:
在form集合中,將為“otherhobby”創(chuàng)建一個條目。然而,它將包括從三個文本框中得到的值。假如在提交時,用戶留下了一個或多個為空,則返回的值為空字符串。假如用戶在第一和第三個文本框分別輸入gardening和mountaineering,第二個文本框為空,在我們的asp代碼中訪問request.form(“otherhobby”),將返回字符串:
gardening, ,mountaineering
為了能夠在這種情況下,訪問單個值,可以用復(fù)雜一些的代碼:
for each objitem in request.form
if request.form(objitem).count >1 then ‘more than one value in this item
response.write objitem & “:
”
for intloop = 1 to request.form(objitem).count
response.write “subkey” & intloop & “value = “_
& request.form(objitem) (intloop) & “
”
next
else
response.write objitem & “ = ” & request.form(objitem) & “
”
end if
next
對于前面的包含三個otherhobby控件的窗體實例,這將返回:
otherhobby:
subkey 1 value = gardening
subkey 2 value =
subkey 3 value = mountaineering
然而,由于很少給多個文本框相同的名字,因此這種技術(shù)很少用到。
a) html中的單選或選頁按鈕控件
在html中,需要給幾個控件相同的name屬性的情況是單選(或選項)按鈕,例如:
i live in:
america
europe
asia
因為用戶只能選擇多項中的一個(這就是給它們相同的名字的原因),將僅得到一個返回值,瀏覽器只能發(fā)送所選擇控件的值。因此,假如這個窗體的用戶已經(jīng)選擇了“europez”,將得到這個條目,通過遍歷form集得到其值:
country = eu
由于為每個控件提供了不同的value屬性,反映了每個條目所對應(yīng)的國家或地區(qū)的名稱。假如省略了value屬性,瀏覽器將返回的值為“on”,因此將得到:
country = on
這是不經(jīng)常用到的,因此一般對使用相同名稱的單選控件使用value屬性。
b) html復(fù)選框控件
當(dāng)一個窗體中html源碼包含一個復(fù)選框控件時,一般都給定唯一的名稱,例如:
i enjoy:
reading
eating
sleeping
在這種情況下,提交窗體時,假如僅是第一和第三個復(fù)選框被選中(加標(biāo)記),遍歷form集合時,會得到下列值:
reading = on
sleeping = on
然而,假如為每個復(fù)選框提供一個值,把這個值發(fā)往服務(wù)器代替字符串“on”。例如窗體如下:
i enjoy:
_
swimming
_
reading
eating
sleeping
如果除第三個復(fù)選框外,全部提交,在request.form集合會產(chǎn)生下列結(jié)果:
hobby = hobby025, hobby003, hobby010
假如編寫更復(fù)雜一些集合遍歷代碼,如先前所述(單獨顯示每個子鍵),就得到這樣結(jié)果:
hobby:
subkey 1 value = hobby025
subkey 2 value = hobby003
subkey 3 value = hobby010
需要注意的是兩種情況,沒有選中的控件根本不返回任何值。在第一種情況的結(jié)果里,沒有欺騙性的逗號,第二種情況也沒有空值。這與上述的使用文本框的相當(dāng)?shù)臏y試的結(jié)果不一樣。使用文本框時,每個文本框都返回一個值,即使是一個空字符串。這是瀏覽器造成這樣的結(jié)果。因此在asp代碼中訪問集合時,要注意這個問題。
上述情況一個棘手的負(fù)作用是使用復(fù)選框時,復(fù)選框值的索引與在原始的html中控件的位置沒有任何聯(lián)系,在上述的例子中第四個復(fù)選框的子鍵數(shù)為3,因為當(dāng)窗體提交時,第二個控件沒有選中。
c) html列表控件
html中的標(biāo)記用來產(chǎn)生標(biāo)準(zhǔn)的下拉列表框,其值以一種有趣的混合方式表示。下列的窗體創(chuàng)建了包含5個值可供用戶選擇,由于包含了multiple屬性,因此可以通過選擇時按下shift或ctrl鍵,選擇不僅一個的條目。
programming
swimming
reading
eating
sleeping
下圖所示為該頁面,顯示的是選中了三個條目。
這種特殊的情況返回的是在form集合中單個條目,它包含選擇的值(單個的標(biāo)記中指定的value屬性),用逗號分隔:
hobby = hobby025, hobby003, hobby010
假如使用更加復(fù)雜一些的集合遍歷代碼(單獨顯示每個子鍵),將得到:
hobby:
subkey 1 value = hobby025
subkey 2 value = hobby003
subkey 3 value = hobby010
這與上述相同名稱的復(fù)選框的情況相同。事實上可以認(rèn)為一個select列表是一列復(fù)選框的列表供選擇(不是選中)相應(yīng)的條目。
然而,列表框也有指定的值,假如在標(biāo)記中設(shè)置value屬性,將得到的是選擇的選項的文本內(nèi)容,request.form集將包含這樣一個項目:
hobby = swimming, reading, sleeping
并且,同樣,復(fù)雜一些的集合遍歷代碼將返回如下結(jié)果:
hobby:
subkey 1 value = swimming
subkey 2 value = reading
subkey 3 value = sleeping
當(dāng)然,假如單個項目被選擇,且在中提供了value屬性,得到結(jié)果包含的僅是:
hobby = hobby025
如果沒有提供value屬性,得到:
hobby = swimming
這允許既可以缺?。礋ovalue)顯示選項文本,也可做相應(yīng)的改變。后一種情況在某些情況下是極為有用的,如要顯示(一個說明的字符串)和傳遞一個完全不同的內(nèi)容(如用一個短碼代表一個說明性的字符串)。
d) html提交和圖像控件
復(fù)選框和單選框是布爾型控件的例子,選中或選擇返回的為“on”,不像文本框和大多數(shù)其他的html控件,瀏覽器不包含沒有選中或沒有選擇的控件的值。
還有另外一種常用的布爾型控件,稱為html按鈕。如、、、和...類型。
button類型的控件不返回任何值,因其對窗體沒有直接的影響。即使使用用來調(diào)用窗體的submit方法,瀏覽器在任何請求中將不包含button類型控件的值。同樣,一個按鈕的值也決不會發(fā)往服務(wù)器。
然而,輸入按鈕控件submit和image類型實際提交窗體給服務(wù)器,其value屬性包含窗體的其他控件的值(只要在html定義中包含一個name屬性)。例如,這個窗體可能是向?qū)ь愋蛍eb應(yīng)用程序的一部分,允許用戶一步步進(jìn)行或取消進(jìn)程:
在一個窗體中,可以包括多個submit按鈕。在這種情況下,應(yīng)該給每一個按鈕唯一的value屬性,如上所示。當(dāng)一個窗體被提交時,遍歷request.form集合的值,將產(chǎn)生一個值,這個值依賴于按下哪個按鈕用于提交這個窗體。假如用戶按下的“previous”按鈕,將得到:
btnsubmit = previous
因此,可查詢request.form集合來決定下一個顯示的頁面,例如:
select case request.form(“btnsubmit”)
case “next”
response.redirect “page_3.asp”
case “previous”
response.redirect “page_1.asp”
case “cancel”
response.redirect “main_menu.asp”
end select
同時,也可根據(jù)需要對每個按鈕使用不同的name屬性。且選擇其值包含在form集合中的控件名稱。在控件沒有一個完整的標(biāo)記而是隨后跟著較長的文本標(biāo)簽的情況下,極為有用,如下圖所示。
此屏幕上的界面由下列代碼產(chǎn)生:
what do you want to do now?
go on the next page
go back to the previous page
cancel and go back to the main menu page
在asp頁面中,接收到數(shù)據(jù)后,可以檢查按扭名稱提供的值來判斷按下的是哪個按鈕。
if len(request.form(“btnnext”)) then response.redirect “page_3.asp”
if len(request.form(“btnprevious”)) then response.redirect “page_1.asp”
if len(request.form(“btncancel”)) then response.redirect “main_menu.asp”
這個工作是查詢一個鍵上的asp集合,如果不存在則返回一個空的字符串。換句話說,如果第二個按鈕(previous頁)按下,則request.form(“btnnext”)的值是一個空字符串,則其長度為零而不至于產(chǎn)生一個錯誤。當(dāng)?shù)诙€按鈕按下時,則在form集合中這個條目的值request.form(“btnprevious”),將是“ ”其長度大于零。
e) 提高使用request集合的效率
訪問一個asp集合來下載一個值是費時的需計算資源的過程,因為這個操作包含了一系列對相關(guān)集合的搜索,這比訪問一個局部變量要慢得多。因此,如果打算在頁面中多次使用集合中的一個值,應(yīng)該考慮將其存貯成為一個局部變量,例如:
strtitle = request.form(“title”)
strfirstname = request.form(“firstname”)
strlastname = request.form(“l(fā)astname”)
if len(sttitle) then strtitle = strtitle & “ “
if strfirstname = “ “ then
strfullname = strtitle & “ “ & strlastname
elseif len(strfirstname) = 1 then
strfullname = strtitle & strfirstname & “· “ & strlastname
else
strfullname = strtitle & strfirstname & “ ” & strlastname
end if
f) 搜索所有的request集合
在某些情況下,可能知道一個值的鍵名將出現(xiàn)在request集合中,但不能準(zhǔn)確地知道是哪一個集合。例如,假如有幾個頁面(或一個頁面的不同段)發(fā)送一個值給同一個asp腳本,它可能在form或者querystring集合中出現(xiàn)。
本章后面部分將研究form和querystring集合的差異。
要看一下一個值為什么可能出現(xiàn)在不同的集合中,考慮一下這種情況:使用了超級鏈接元素請求一個頁面。在這種情況下,增加一個值到請求的唯一方法是把它加到url上。然而,同樣的值可能已出現(xiàn)在另一個頁面的中,或同一頁面不同部分:
...
...
...
for help go to the help page
...
在這種情況下,按下窗體上的help按鈕,將發(fā)送request.form集合中一對名稱/值“page=help”。然而,按下超級鏈接也可能發(fā)送名稱/值“page=help”,但是這次卻是在querystring集合里。為訪問這個值,可使用asp request對象的一個特殊功能:
strpage = request(“page”)
這將按序搜索全部的集合——querystring、form、cookies、clientcertificate、servervariables,直到發(fā)現(xiàn)第一個匹配值的名稱。這樣做比直接訪問適當(dāng)?shù)募闲实?,并且是不安全的,除非能絕對保證這個值不會出現(xiàn)在另外一個集合中。
例如,可能希望搜集滿足客戶請求的web服務(wù)器的名稱,這通過出現(xiàn)在每個查詢中的request.servervariables集合中尋找“server_name”來實現(xiàn)。然而,假如任一其他的集合也包含名為“server_name”的值(記住鍵名不區(qū)分大小寫),當(dāng)使用request(“server_name”)時,得到的是錯誤的結(jié)果。使用reqeust.servervariables(“server_name”)句法,我們將很難進(jìn)行錯誤追蹤。
總而言之,使用“搜索全部集合”技術(shù)要格外小心,且只在沒有其他技術(shù)能夠提供你需要的結(jié)果時使用。
g) 訪問其他的集合
篇10
一、摹仿簽名筆跡檢驗的理論基礎(chǔ)
摹仿筆跡實則改變書寫動力定型,這需要一方面排除舊的動力定型的干擾,另一方面要付出新的勞動去建立新的動力定型[2]。摹仿簽名筆跡鑒定主要依托如下要點:第一,書寫動力定型決定書寫習(xí)慣;第二,書寫習(xí)慣受人的生理結(jié)構(gòu)、教育程度、書寫練習(xí)情況、氣質(zhì)個性等綜合影響;第三,筆跡的反映性是簽名筆跡檢驗的物質(zhì)基礎(chǔ),是不依人的意志為轉(zhuǎn)移的客觀存在;第四,筆跡的總體特殊性,這是由于個人的書寫習(xí)慣具有共同性與特殊性的雙重屬性,決定了不同人的筆跡特征既有符合又有差異,而特征總和則各不相同[3]。
二、摹仿簽名筆跡的種類及其特點
由于摹仿簽名筆跡的分類尚無統(tǒng)一的標(biāo)準(zhǔn),實踐中將摹仿簽名筆跡分為臨摹、套摹、記憶摹仿、練習(xí)摹仿和自我摹仿五類。
(一)臨摹簽名及其特點
臨摹即臨寫摹仿,邊觀察邊仿寫。這種手法摹仿出來的簽名筆跡與被摹簽名筆跡在字的大小、間距、搭配比例和筆畫長短等特征上都會有不同程度的差別。由于摹仿人需要邊觀察,邊思考,邊摹寫,所以常常會出現(xiàn)駐筆待摹現(xiàn)象。
(二)套摹簽名及其特點
套摹最常見的是復(fù)寫套摹和透光套摹。復(fù)寫套摹,把需要偽造簽名的文書紙張放在簽有真實簽名筆跡紙張的下面,中間放入復(fù)寫紙,用硬性書寫工具,按照真實簽名筆跡的筆路用力描繪復(fù)寫。透光套摹即用透光性較好的紙張覆蓋在簽有真實簽名的文書上面,然后按照下面真實簽名筆跡投射過來的光進(jìn)行描繪摹寫。
套摹不易暴露摹仿人的習(xí)慣,但是摹仿筆跡仍有其固有特點:易出現(xiàn)同字重疊的征象;有的會出現(xiàn)色痕與劃痕不一致;復(fù)雜的筆畫或不易辨識的連續(xù)書寫動作與簡單易變的書寫動作之間的書寫速度,筆力等反映不一致;留有固定紙張的夾痕,釘孔的痕跡特征。
(三)記憶摹仿簽名及其特點
記憶摹仿指觀察記憶摹仿,亦稱背摹,具體指摹仿人為了偽裝筆跡特征,而憑借自己所記憶的被摹筆跡的形態(tài)進(jìn)行書寫所形成的字跡。由于記憶摹仿只能把被摹簽名的特征突出、印象深刻的字的組成部分描繪出來,故摹仿簽名筆跡中會反映出摹仿人自身的一部分筆跡特征。
(四)練習(xí)摹仿簽名及其特點
練習(xí)摹仿是指摹仿人對被摹簽名進(jìn)行一段時間反復(fù)多次練習(xí)后,在大腦皮層建立起臨時的動力定型,從而使獲得的仿寫技能再現(xiàn)。練習(xí)摹仿筆跡的特征是:書寫運筆較流利,一般無抖動彎曲,中途停頓,筆力平緩以及修飾重描的征象。
(五)自我摹仿簽名及其特點
自我摹仿是指在特定的情況下或為達(dá)到某種特殊的目的,摹仿人為了肯定或否定書寫筆跡與自己的一種聯(lián)系,而以自己的書寫筆跡為摹樣書寫形成的一種筆跡[7]。
三、摹仿簽名筆跡鑒定的一般方法
(一)分析檢材簽名筆跡進(jìn)而正確識別摹仿
摹仿者對被摹仿人的簽名字跡有一定的了解,因而摹仿的簽名字跡與被模仿者的簽名字跡書寫水平接近,字跡的形態(tài)接近以及筆順的特征接近。鑒定摹仿簽名筆跡,就是要將真實筆跡與偽造變造的筆跡區(qū)分開來,認(rèn)定摹仿事實。
1.正確把握特征,確定檢材簽名的真?zhèn)?。識別摹仿簽名筆跡主要從以下幾個方面著手:
(1)書體字體,整體風(fēng)貌。要觀察簽名筆跡的書體字體的風(fēng)格是否一致。同時書寫人所寫的筆畫、偏旁、單字,不可能只是機械性重復(fù),而應(yīng)是具有多樣性的[8]。故觀察簽名筆跡的書寫是否自然流暢,形散而神不散,而不只是呆板的重復(fù)。
(2)筆力特征的異同。筆力的輕重有特定的點位和段位及變化規(guī)律,其規(guī)律表現(xiàn)為:不連接筆畫比連接筆畫的筆力重,主筆畫的筆力比附筆畫的筆力重,比連接筆畫的筆力輕重連接的變化精細(xì)自然。
(3)起收筆、運筆、連筆、轉(zhuǎn)折處的筆跡特征。起收筆、運筆、轉(zhuǎn)折處的這些細(xì)節(jié)特征是最容易暴露摹仿事實的地方。摹仿人對被摹仿筆跡的感知是有限的,不可能面面俱到。
(4)筆痕特征。筆痕是書寫習(xí)慣和書寫工具特點的綜合反映。摹仿簽名筆跡會出現(xiàn)壓痕、條痕、劃痕、色痕、墨痕等的反映不一致。使用套摹手法的摹仿筆跡會留下較多的筆痕特征。
2.適度了解案情,有利于正確認(rèn)定檢材簽名筆跡的真?zhèn)?。了解簽名人的年齡、文化程度、職業(yè)、知識結(jié)構(gòu)以及書寫水平等基本情況;弄清檢材與樣本的形成條件,包括書寫工具、書寫襯墊物、書寫人心理狀態(tài)和書寫環(huán)境等。
(二)鑒定摹仿簽名確定摹仿人
1.吃透檢材、被摹仿人和嫌疑摹仿人三者的筆跡特征。這需要鑒定人全面了解三者的一般特征和細(xì)節(jié)特征,明顯特征和隱蔽特征,有形特征和無形特征。如果檢材的字?jǐn)?shù)、特征比較少,那么可以倒置檢驗,即先吃透樣本,然后再和檢材比較。
2.堅持使用原件,應(yīng)做到樣本的可比性強且數(shù)量充分。要創(chuàng)造盡可能好的鑒定條件,得出的鑒定結(jié)論才更加可靠。任何復(fù)印件都不能比反映原件更好的反映真實細(xì)節(jié)的特征。
3.善于運用各種檢驗方法。觀察法即目力直接觀察或借助放大鏡、顯微鏡是識別檢驗?zāi)》潞灻P跡的基本方法;測量法,運用專業(yè)的儀器測量字跡的大小,筆畫的粗細(xì)、深淺、長短、弧度,筆力的輕重,進(jìn)一步進(jìn)行系統(tǒng)分析;對比法,將摹仿簽名和正常簽名的起收筆、運筆、筆順、書寫工具、書寫紙張等等進(jìn)行比較。
4.綜合評斷,科學(xué)合理地解釋檢材中出現(xiàn)的筆跡特征的變異。簽名筆跡的形成往往是在不同時間、地點和不同條件下書寫形成的,它們之間必然存在一定的差異,一般由以下幾種原因形成:(1)時間因素。人的一生中的簽名字跡自形成一般要經(jīng)歷從幼稚、呆板到成熟,從普通到流暢、有特色幾個過程,不同時期書寫人的簽名習(xí)慣會有所差別;(2)書寫的姿勢因素。個人書寫姿勢的不同在簽名上會表現(xiàn)出不同的特征差異;(3)書寫工具和承受物因素。不同的書寫工具,承受物的軟硬、厚薄等都可產(chǎn)生筆跡特征的差異;(4)受書寫環(huán)境和書寫人的心理因素影響。書寫人在簽名時書寫環(huán)境安靜或吵鬧,人緊張或不安等也會使得簽名字跡產(chǎn)生差異。
摹仿簽名筆跡的檢驗的確有一些難度,但是只要我們對檢材簽名字跡進(jìn)行深入細(xì)致的研究,認(rèn)真分析其細(xì)節(jié)特征,掌握檢材簽名字跡的規(guī)律特征,并且與符合要求的樣本簽名字跡進(jìn)行比較,綜合地分析書寫人的心理和生理狀態(tài)等因素,確定筆跡特征形成的真正原因,并且結(jié)合案情進(jìn)行分析,就能夠得出科學(xué)的結(jié)論。
參考文獻(xiàn)
[1]賈治輝.文書檢驗[M].北京:中國民主法制出版社,2007
[2]張公正.關(guān)于摹仿簽名筆跡之探索[J].公安大學(xué)學(xué)報,2002(1)
[3]柯昌林.摹仿簽名筆跡檢驗[D].西南政法大學(xué),2007
[4]吳琦.淺析臨摹書寫筆跡的檢驗[J].沿海企業(yè)與科技,2006,(12)
[5]劉小燕等.套摹字跡檢驗之我見[J].廣西警官高等??茖W(xué)校學(xué)報,2007
[6]賈治輝、柯昌林.專業(yè)性練習(xí)摹仿簽名筆跡鑒定的實驗研究[J].刑事技術(shù),2007,(5)
[7]賈治輝.自我摹仿筆跡鑒定研究[J].政法學(xué)刊,2002,(4)
[8]馬茲河等.從摹仿簽名筆跡特征探究檢驗及鑒定[J].中國司法鑒定,2008(2)
[9]許耀明.摹仿簽名字跡的點滴體會[J].刑事技術(shù),2003,(4)
作者簡介
熱門標(biāo)簽
特殊教育論文 特殊教育教案 特殊教育課 特殊教育法 特殊人群 特殊教育 特殊群體 特殊兒童教育 特殊教育學(xué) 特殊教育管理 開業(yè)活動策劃 電商年度總結(jié) 審計證據(jù)論文 草莓育苗技術(shù)