2012-04-27 6 views
5

私はユニコードのデータ文字を扱っていますが、なぜユニコードデータに名前がないのか不思議です。ここでは、あなたがチェックできるサンプルコードです<unknown>Python、unicodedataの名前、コードポイントの値は何ですか?

私はユニコードデータベース内のすべての文字は、BTWにはすべて同じカテゴリの[Cc] Other, Controlがあると思った。

別の質問:どのようにしてユニコードコードポイント値を取得できますか?それはord(unicodechar)トリックですか?

私はファイルhere(エンコーディングは奇妙なものです)を入れました。そして、私のカットアンドペーストが '見えない'文字でできている可能性があります。

#!/bin/env python 
# -*- coding: utf-8 -*- 

#extracted and licensing from here: 
""" 
:author: Laurent Pointal <[email protected]> <[email protected]> 
:organization: CNRS - LIMSI 
:copyright: CNRS - 2004-2009 
:license: GNU-GPL Version 3 or greater 
:version: $Id$ 
""" 

# Chars alonemarks: 
#   !?¿;,*¤@°:%|¦/()[]{}<>«»´`¨&~=#±£¥$©®" 
# must have spaces around them to make them tokens. 
# Notes: they may be in pchar or fchar too, to identify punctuation after 
#  a fchar. 
#  \202 is a special , 
#  \226 \227 are special - 
alonemarks = u"!?¿;,\202*¤@°:%|¦/()[\]{}<>«»´`¨&~=#±\226"+\ 
    u"\227£¥$©®\"" 
import unicodedata 
for x in alonemarks: 
    unicodename = unicodedata.name(x, '<unknown>') 
    print "\t".join(map(unicode, (x, len(x), ord(x), unicodename, unicodedata.category(x)))) 

    # unichr(int('fd9b', 16)).encode('utf-8') 
    # http://stackoverflow.com/questions/867866/convert-unicode-codepoint-to-utf8-hex-in-python  

答えて

3

私はどのようにすることができますされ、UnicodeDataファイル

別の質問を参照してください、いいえ、制御文字が名前を持っていないUnicodeデータベース内のすべての文字が

と命名したと思いました私はユニコードコードポイント値を取得する?それはORD(ユニコード)

はい! unicodedataライブラリdocumentationあたりとして

print '%x' % ord(unicodedata.lookup('LATIN LETTER SMALL CAPITAL Z')) 
## 1d22 
+1

errr、いや、それは 'ord'だ、' ORD' –

+1

私は、 – georg

+0

OK誰か...があるだろう知っていないあなたに感謝:) を(はい、実際に、私は大文字の中に書かれていますが、そうではないことを知っていたしています) – user1340802

2

、 UnicodeDataファイル内のフォーマット5.2.0で定義されたモジュールが同じ名前と記号を使用し

(参照here

あなたの2文字は次の出力を表示します。

1 150 <unknown> Cc 
1 151 <unknown> Cc 

彼らはポイント文字0x96と0x97を制御するために対応 ユニコードドキュメントは上記the code point paragraphに規定する:

サロゲートコードポイント、プライベート用文字、制御コード、 noncharacters、および割り当てられていないコードポイントには名前を持っていません。

私はunicodedataモジュールを介してユニコードのコメントに対応するラベルのコメントを取得する方法を知りませんが、私はそれはUnicodeの規範によってそのように定義されているので、あなたの二つの制御文字の任意の名前を取得しないと思います。

+0

あなたの返事に感謝します:)私は彼が最初だったので、私はTHG435の1つを受け入れましたが、私はあなたも受け入れたいと思います。ベスト。 – user1340802

関連する問題