2012-08-25 240 views
-3

我需要讓用戶可以在任何允許輸入文本的地方輸入一小組特殊字符。字符的名稱是:是否可以包含特殊字符

  1. FORALL .................................存在
  2. 不存在........................... CAPITAL PI
  3. CAPITAL SIGMA ............ ..........子集
  4. 正確的子集..... ..... SUPERSET的
  5. 正確SUPERSET的......... IMPLIES
  6. EQUIVALENCE .........................不是
  7. AND .............. ............................或

編輯

正如兩點意見,我要求澄清我的要求。

我希望這些字符可用於對象編輯器中的用戶輸入以及對象讀取器中的輸出(作爲符號)。通常,這些閱讀器將顯示該對象的描述或定義,並且這些符號將形成該描述/定義的一部分。用戶將輸入它們作爲描述或定義對象任務的一部分。讀者可以使用各種媒體 - 網頁,自定義對象閱讀器,用於打開或關閉屏幕閱讀的文本文檔。

我想在我的應用程序中提供這些設施,而不管用戶擁有哪臺機器。我特別想給他們提供無論:

  1. 平臺
  2. 這些字體可在特定的機器
  3. 的語言環境 - 鍵盤和操作系統設置。

@ Raedwald編輯的答案爲我的要求的兩個部分提供了完整的答案。我很可能會接受他對我的問題的回答。他需要進一步調查的部分答案是「2.檢測輸出設備使用的輸出編碼,在此檢測中包括檢查哪些字體存在。」我不知道這個任務涉及什麼。

編輯完

+1

讓用戶從列表中選擇它們? – InternetSeriousBusiness

+1

請指定上下文。這是在網頁上,在Word文檔中,在編輯器中,或者是什麼? –

+0

這個問題仍然太模糊。由於沒有指定編程語言或編程語言,因此這個問題似乎要問怎麼做字符輸入,作爲一個抽象問題,關於方法,而不是實際編程。我還要求文本輸入獨立於安裝的字體,這意味着需要可下載的字體或使用圖像渲染文本。 –

回答

3

「字體的獨立」, 「語言環境的獨立」。我想這意味着你想限制自己只有ASCII字符集。在這種情況下,我建議使用C/C++字符串的方式使用轉義字符。 '?' 例如,如果轉義字符是,你可能編碼的特殊符號是這樣的:??

  • 一個FORALL
  • Ë存在
  • N不EXISTS
  • P CAPITAL? PI
  • ?S CAPITAL SIGMA
  • ?<子集

依此類推。除非你想成爲W V奎因*,你還應該定義?意思是「?」。


編輯:作爲一個評論問:

與輸入端的交易。如果您確實想要將特殊符號顯示爲特殊符號,則必須以Unicode格式輸出。因此,您必須在執行輸出時將此表示轉換爲Unicode,或者在輸入上進行轉換並使用Unicode記錄字符串。


編輯:作爲一個評論問:

我不一定要自己限制在ASCII字符集。我想的字符輸入和顯示時,即使有關沒有(例如)計算機中的符號字體

  1. Store中的Unicode編碼字符串。
  2. 檢測輸出設備使用的輸出編碼。在此檢測中包含檢查哪些字體存在。
  3. 如果輸出編碼可以支持所有需要的特殊字符的輸出,請將您的輸出代碼從Unicode轉換爲輸出設備使用的編碼。否則,您的輸出代碼將使用與您用於輸入相同的轉義序列來編寫特殊字符。

* 哲學家W¯¯V奎因famously改變他的機械打字機,用邏輯符號,包括問號代替一些類型。當被問及「你不會錯過問號?」時,他回答說:「好吧,你看,我處理確定性問題。」

+0

@ChrisWalton是的。除了注意你應該使用unicode之外,「how」不是獨立於任何東西。 – Marcin

+1

@ChrisWalton「你的回答是一個可用的輸入解決方案」,這就是你在問題中所要求的所有內容。也許你應該編輯它? – Raedwald