Nie można już używać kodu Alt do wstawiania znaków Unicode

10

Używam kodu Alt do wielokropka, 8230, od pewnego czasu, w kilku aplikacjach. Kilka dni temu przestał działać i &jest wyświetlany zamiast po naciśnięciu Alt+ 8+ 2+ 3+ 0(na klawiaturze numerycznej). Stało się to zarówno na moim komputerze stacjonarnym, jak i na laptopie (gdzie go używam Fn). Oba działają na 64-bit-Win-7 ze stroną kodową 850 i oba mogły niedawno zaktualizować system Windows i Operę 12.

Jaki może być powód wyłączenia tej metody wprowadzania danych i jak ją przełączyć z powrotem ?

Nawiasem mówiąc, właśnie dowiedziałem się, że Alt+ 0+ 1+ 3+ 3działa. Dowiedziałem się również, że Alt+ 8+ 2+ 3+ 0nadal działa w WordPad lub MsWord10, ale ani w Operze, ani Notepad ++ - tam kod znakowy jest tłumaczony modułem 256 przed wstawieniem.

Bergi
źródło
Sugeruję wypróbowanie WinCompose, ponieważ pozwala wprowadzić elipsę za pomocą prostej i intuicyjnej kombinacji [Alt] [.] [.].
sam hocevar,
@ LưuVĩnhPhúc Nie, to zupełnie inne pytanie. Zauważ, że 8230 jest dziesiętnym kodem elipsy, a nie heksadecymalnym.
Bergi,

Odpowiedzi:

6

O ile mi wiadomo, metoda Alt nnnn (dziesiętna nnnn> 255) jest funkcją RichEdit i dlatego działa tylko na wybranych programach, takich jak WordPad i MS Word. W innych programach wprowadzona liczba, nnnn, jest zmniejszana modulo 256, aby uzyskać liczbę z zakresu 0 ... 255, interpretowaną zgodnie z używaną stroną kodową.

Por. do Insert Unicode znaków z klawiatury? który opisuje niektóre alternatywne metody. Niestety, metoda Alt + xxxx (xxxx szesnastkowa; np. Alt + 2026 dla „…”) jest najwyraźniej domyślnie wyłączona i należy zmodyfikować rejestr systemu Windows, aby na to zezwolić. Oprócz narzędzia UnicodeInput istnieje również wprowadzanie Unicode według nazwy , ale metody te nie są tak wygodne do szybkiego pisania, jak metody Alt.

Jukka K. Korpela
źródło
Dzięki, wydaje się, że to właściwy kierunek. Najwyraźniej Opera 12 porzuciła tę funkcję RichEdit. Czy mogę jakoś ponownie włączyć to ręcznie, czy też muszę napisać raport o błędzie?
Bergi,
1
+1 Twoja uwaga, że ​​w innych programach wartość postaci to mod 256, jest dokładnie tym, co zaobserwowałem w Notatniku.
Nicole Hamilton
4

Kody Alt i znaki Unicode są tylko nieznacznie powiązane i (w przeważającej części) od każdej aplikacji zależy, jak sobie z nimi poradzić, więc może być różna w zależności od aplikacji, wersji aplikacji i tym podobnych.

Zasadniczo chodzi o kodowanie znaków i strony kodowe , a nie o czcionki lub dane wprowadzane przez użytkownika.

Kody Alt dla ASCII to tylko 0-255 (8-bitowa strona kodowa). Wiele programów (i systemów operacyjnych) radzi sobie z większymi liczbami wprowadzonymi przez użytkownika przez zawijanie na 256.

256 = 0, 257 = 1 itd.

Tak więc wpisanie ALT + 8230, w rzeczywistości jest równoważne wpisaniu ALT + 38 (8230/256 = 32.1484375. 256 * 32 = 8192. 8230 - 8192 = 38), który jest znakiem ASCII „&” - chyba że program go przechwyci i zastępuje go „poprawnymi” kodami Unicode lub przy użyciu innej strony kodowej (np. Unicode), jak na przykład MS Word i nowsze wersje WordPad.

Windows używa rozszerzonej wersji 8-bitowej strony kodowej MSDOS (850), zwanej stroną kodową „ Windows-1252 ” (w każdym razie dla języków angielskich). Ale wykorzystuje to tylko do starszych części systemu operacyjnego, które nie w pełni obsługują strony kodowe Unicode.

To są powody, dla których możesz łatwo zobaczyć różne wyniki w różnych systemach operacyjnych i aplikacjach, a także w różnych częściach samego systemu Windows.

To co najmniej mylące zagadnienie. :)

Jestem prawie pewien, że Alt-0133 jest „oficjalnym” rozszerzonym kodem ALT systemu Windows dla elipsy (na stronie kodowej systemu Windows), więc prawdopodobnie będziesz miał bardziej konsekwentne korzystanie z niego.

Oto kilka powiązanych informacji .

Ƭᴇcʜιᴇ007
źródło
Dzięki za link informacyjny. Widziałem już mylące różnice podczas wyszukiwania problemu :-)
Bergi,
1

U + 8230 nie jest wielokropek, to Han Charakter wojenny : . Nie wiem, dlaczego miałeś kiedyś elipsę z tym kodem, ale 133 jest rzeczywiście właściwym punktem kodowym dla tego kodu.

Gdzie dokładnie widzisz elipsę dla 8230? Być może był to błąd w Operze, który został naprawiony od ostatniej aktualizacji. Jeśli było to w „kilku aplikacjach”, być może miałeś błąd w czcionce, układzie klawiatury / ustawieniu regionalnym lub coś takiego (nie przychodzi mi na myśl nic oczywistego ani racjonalnego, więc musiał to być błąd, a nie uzasadnione ustawienie).

Jeśli (z jakiegoś powodu) naprawdę chcesz / musisz użyć do tego niepoprawnego punktu kodowego zamiast prawidłowego, możesz użyć czegoś takiego jak Authotkey, aby utworzyć skrypt, który akceptuje akord lub sekwencję i generuje to, co chcesz .

Czy na pewno udało Ci się wpisać Alt+ Numpad-8+ Numpad-0+ Numpad-2+ Numpad-3? Chociaż niektóre programy mogą go niezależnie obsługiwać, system Windows domyślnie nie akceptuje wysokich punktów kodowych Unicode. Możesz jednak użyć wpisu szesnastkowego : Alt+ Numpad-++ 2+ 0+ 2+ 6.

Synetech
źródło
8230 jest liczbą dziesiętną dla heksadru 2026, który faktycznie jest elipsą. fileformat.info/info/unicode/char/2026/index.htm Alt + 8230 działa w niektórych aplikacjach (np. nowa wiadomość Outlook), ale nie w innych (np. Notatnik) dla mnie na Win7 x64.
Nicole Hamilton,
8230jest dziesiętnym kodem znakowym U + 2026 ( Ellipsis ). Nigdy nie użyłem prefiksu +ani 0, po prostu przytrzymałem Alti wprowadziłem czterocyfrowy kod dziesiętny. Jak powiedziano w pytaniu, nadal działa to dobrze w programie Word.
Bergi,
Tak, jestem pewien, że zadziałało, ale myślę, że zadziałało tylko w moich ulubionych aplikacjach: - / Wpis heksadecymalny nie jest obecnie włączony i daje wynik , więc pozostanę przy 0133
Bergi
> Wpis szesnastkowy nie jest obecnie włączony Może nie, ale możesz go włączyć dla wygody, ponieważ, jak powiedziałem, Windows domyślnie nie akceptuje 8000 punktów kodowych (dziesiętnie). Używanie wpisu szesnastkowego jest ustawieniem Windows, więc działa we wszystkich aplikacjach (przynajmniej we wszystkich, które obsługują pola edycji Unicode).
Synetech
0

Być może bieżąca czcionka nie obsługuje takich górnych znaków Unicode, zmień czcionkę na „Arial” i spróbuj ponownie.

Kiedy testuję to w WordPadzie, ALT + 8 + 2 + 3 + 0 działa dla Arial, ale nie dla niektórych innych czcionek.

Peter Hahndorf
źródło
1
Nie, czcionki obsługują ich wyświetlanie. Nie sądzę też, aby czcionka mogła wpływać na metodę wprowadzania.
Bergi