开发者

Show a character's Unicode codepoint value in Eclipse

I have a U开发者_运维技巧TF-8 text file open in Eclipse, and I'd like to find out what a particular Unicode character is. Is there a function to display the Unicode codepoint of the character under the cursor?


I do not think there is yet a plugin doing exactly what you are looking for.

I know about a small plugin able to encode/decode a unicode sequence:

Show a character's Unicode codepoint value in Eclipse

The sources (there is not even a fully built jar plugin yet) are here, with its associated tarball: you can import it as a PDE plugin project a,d test it in your eclipse.


You can also look-up a character in the Unicode database using the Character Properties Unicode Utility at http://unicode.org/. I've made a Firefox Search Engine to search via that utility. So, just copy-and-paste from your favourite editor into the search box.

See the list of online tools at http://unicode.org/. E.g. it lists Unicode Lookup by Jonathan Hedley.


Here's a Python script to show information about Unicode characters on a Windows clipboard. So, just copy the character in your favourite editor, then run this program.

Not built-in to Eclipse, but it's what I'll probably use when I haven't got a better option.

"""
Print information about Unicode characters on the Windows clipboard

Requires Python 2.6 and PyWin32.

For ideas on how to make it work on Linux via GTK, see:
http://mrlauer.wordpress.com/2007/12/31/python-and-the-clipboard/
"""

import win32con
import win32clipboard
import unicodedata
import sys
import codecs
from contextlib import contextmanager

MAX_PRINT_CHARS = 1

# If a character can't be output in the current encoding, output a replacement e.g. '??'
sys.stdout = codecs.getwriter(sys.stdout.encoding)(sys.stdout, errors='replace')

@contextmanager
def win_clipboard_context():
    """
    A context manager for using the Windows clipboard safely.
    """
    try:
        win32clipboard.OpenClipboard()
        yield
    finally:
        win32clipboard.CloseClipboard()

def get_clipboard_text():
    with win_clipboard_context():
        clipboard_text = win32clipboard.GetClipboardData(win32con.CF_UNICODETEXT)
    return clipboard_text

def print_unicode_info(text):
    for char in text[:MAX_PRINT_CHARS]:
        print(u"Char: {0}".format(char))
        print(u"    Code: {0:#x} (hex), {0} (dec)".format(ord(char)))
        print(u"    Name: {0}".format(unicodedata.name(char, u"Unknown")))

try:
    clipboard_text = get_clipboard_text()
except TypeError:
    print(u"The clipboard does not contain Unicode text")
else:
    print_unicode_info(clipboard_text)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜