題:
Unicode字符串分析器,結果排列整齊
unor
2014-09-07 00:58:11 UTC
view on stackexchange narkive permalink

我有一個字符串,想知道它包含哪些Unicode字符。字符名稱和代碼點就足夠了。

解決方案必須是FLOSS,並且必須在GNU / Linux上本地運行。

命令行工具 unicode 可以執行此操作,但是結果的顯示不容易以視覺方式解析,因為字符顯示在每個字符的元數據塊之間:

"Oh, hai" result of unicode

網絡應用程序 https://r12a.github.io/uniview/具有更好的顯示效果,因為您可以讀取結果旁邊的原始字符串(儘管是垂直的),無需跳過元數據行:

"Oh, hai" result of UniView

哪個工具的結果顯示效果更好?

理想情況下,這將是一個GUI,在其中水平顯示輸入字符串,以某種方式標記非可視字符,然後單擊字符以顯示其名稱和元數據。但我願意接受其他解決方案;如果有一個本地客戶端使用類似的東西,我什至會對類似UniView的顯示器感到滿意。

二 答案:
Gilles 'SO- stop being evil'
2014-09-07 05:59:31 UTC
view on stackexchange narkive permalink

您可以通過將 unicode 的輸出傳遞到一些文本重寫中來輕鬆更改演示文稿。要獲得與Un​​iView Web應用程序相同的演示文稿:

  unicode -s'Oh,hai'| perl -000 -ne'/ ^ U +(。*)\ n。* \ n( 。)/並顯示“ $ 2 $ 1 \ n”' 

或者,您可以在具有良好編輯器支持的編輯器中鍵入文本。例如,在Emacs中,按 Cu Cx = (帶有前綴參數的命令 what-c​​ursor-position )以顯示有關以下內容的大量信息光標下的字符,包括其Unicode代碼點,名稱和屬性。

Steve Barnes
2014-09-07 12:26:05 UTC
view on stackexchange narkive permalink

使用python及其unicodedata模塊,您可以或多或少地獲得所需的內容-

  import unicodedata as ucdu = u'C在英國使用£,在日本使用¥ u:打印c,“%04x”%ord(c),ucd.category(c),ucd.name(c) 

產生:

  T 0054拉丁字母大寫字母Th 0068 Ll拉丁字母小寫字母He 0065 Ll拉丁字母大寫字母E 0020 Zs SPACEU 0055 Lu拉丁字母大寫字母UK 004b Lu拉丁字母大寫字母K 0020 Zs SPACEu 0075 Ll拉丁字母小寫我們0073 Ll拉丁字母小寫0065 Ll拉丁文小寫字母Es 0073 Ll拉丁文小寫字母S 0020 Zs空格£00a3 Sc磅符號0020 Zs SPACEb 0062 Ll拉丁文小寫字母Bu 0075 Ll拉丁文小寫字母Ut 0074 Ll拉丁文小寫字母T 0020 Zs空格C字母L拉丁文小寫字母0061 Ll拉丁文字母Ap 0070 Ll拉丁文字母Pa 0061 Ll拉丁文字母N 0020 Zs空格¥00a5 Sc日元符號 

您也可以先輸出輸入輕鬆地,(使用集),則每個單獨的字符僅輸出一行,這可能會更多使用。

  • 免費
  • 大多數Linux發行版中已安裝
  • 您需要一個GUI或html輸出,可以很快將其關閉。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...