Rust: ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с отслСТиваниСм ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ ASCII (функция Β«non_ascii_identsΒ»)

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 12 ΠΎΠΊΡ‚. 2015  Β·  54ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: rust-lang/rust

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ ASCII, Π² настоящСС врСмя Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹. ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ с Π½ΠΈΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ исправлСно, Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π²ΠΎΡ€ΠΎΡ‚Π° ΡƒΠ΄Π°Π»Π΅Π½Ρ‹.

B-unstable C-tracking-issue P-low T-lang

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

НС ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ это подходящСС мСсто для ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ интСрСсныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, вСроятно, Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ матСматичСских символов. Π­Ρ‚ΠΎΠ³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, записав ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ссли Ρ†Π΅Π»ΡŒΡŽ являСтся Π»ΡƒΡ‡ΡˆΠ°Ρ коррСляция с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ уравнСниями.

НапримСр, Ξ” (Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр) ΠΏΡ€ΠΎΡ‚ΠΈΠ² Ξ΄ (Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр) Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ снимкС экрана. Π›ΠΈΠ½Ρ‚Π΅Ρ€ Π½Π΅ являСтся /Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ/, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ здСсь Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΈΠ½ΠΎΠ³ΠΎ случая.

screen shot 2017-06-27 at 2 28 55 pm

ВсС 54 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

/cc @rust-язык/язык

Π²Ρ‹Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅

копия @SimonSapin

Π’ΠΈΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Ρ‚Π°ΠΊ: http://www.unicode.org/reports/tr31/ ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² этом Ρ€ΠΎΠ΄Π΅.

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это ΡΡ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ, Π½ΠΎ потрСбуСтся нСкоторая Ρ€Π°Π±ΠΎΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒ сСбя Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ поступаСм ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

Π― понятия Π½Π΅ имСю, Ρ‡Ρ‚ΠΎ здСсь ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ рСкомСндациям ΠΏΠΎ Unicode ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈΠ»ΠΈ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚. Или это ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сдСлано, ΠΊΠΎΠ³Π΄Π° эта функция Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π±Ρ‹Π»Π° прСдставлСна?

@SimonSapin
C ΠΈ C++ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ http://unicode.org/reports/tr31/#Alternative_Identifier_Syntax (с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ограничСниями), ΠΈ я Π½Π΅ Π²ΠΈΠ΄Π΅Π» Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΆΠ°Π»ΠΎΠ± Π½Π° это Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ… isocpp ΠΈΠ»ΠΈ списках ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ :)
ΠžΠ±Π·ΠΎΡ€ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1518.htm
РСализация Π² Clang: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/UnicodeCharSets.h?view=markup
копия https://github.com/rust-lang/rust/issues/4928

Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ сопоставлСниСм ΠΈΠΌΠ΅Π½ юникода mod с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы (Π² OS X, IIRC), Π½ΠΎ я Π½Π΅ ΠΌΠΎΠ³Ρƒ Π½Π°ΠΉΡ‚ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ссылку здСсь: https://github.com /rust-lang/rust/issues/2253. (Π’ Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ случаС Π½Π΅ΠΈΠ½Π»Π°ΠΉΠ½ΠΎΠ²Ρ‹Π΅ mod s ΠΈ extern crate s ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Ρ‹ Π² ASCII)

Π”Π°, #2253 β€” это извСстная ΠΌΠ½Π΅ большая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, которая заставляСт мСня Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ стабилизации ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ Unicode.

(ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ здСсь Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° Π΄Π²Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ _ΠΌΠΎΠ³Π»ΠΈ_ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΏΡƒΡ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ - для содСрТимого строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ².)

ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ пСрСнСсти это обсуТдСниС Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ RFCS, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° https://github.com/rust-lang/rfcs/issues/802 .

Π― согласСн с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ эта функция заслуТиваСт Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· процСсс RFC.

Π― ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΠ» эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΡŽ (ΠΈΠ»ΠΈ устарСваниС ΠΈ Ρ‚.Β Π΄.) шлюза Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ non_ascii_idents .

ПослС обсуТдСния Π½Π° собрании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ lang ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π°, RFC Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. Нам Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ собираСт Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ подходящий Π²Ρ‹Π±ΠΎΡ€ для Rust. Π­Ρ‚ΠΎ достаточно спорный ΠΈ слоТный вопрос, поэтому Π΅Π³ΠΎ слСдуСт донСсти Π΄ΠΎ всСго сообщСства, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· нас, Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π²Π·Π»Π°ΠΌΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Rust, Π² любом случаС Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ большого ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½Π΅-ASCII.

сортировка: P-Π½ΠΈΠ·ΠΊΠΈΠΉ

ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ° «низкая», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² настоящСС врСмя RFC отсутствуСт, Π°, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π³ΠΎ дСйствий.

Π’ JavaScript, Perl 5 ΠΈ Perl 6 эта функция доступна.
JavaScript (Ѐайрфокс 50)

function Π‘Π»ΠΎΠ²ΠΎ(стойност) {
  this.стойност = стойност;
}
var здрасти = new Π‘Π»ΠΎΠ²ΠΎ("Π—Π΄Ρ€Π°Π²Π΅ΠΉ, свят");
console.log(здрасти.стойност) //Π—Π΄Ρ€Π°Π²Π΅ΠΉ, свят

ΠŸΠ΅Ρ€Π» >=5.12

use utf8;
{
  package Π‘Π»ΠΎΠ²ΠΎ;
  sub new {
    my $self = bless {}, shift;
    $self->{стойност} = shift;
    $self
  }
};
my $здрасти = Π‘Π»ΠΎΠ²ΠΎ->new("Π·Π΄Ρ€Π°Π²Π΅ΠΉ, свят");
say ucfirst($здрасти->{стойност}); #Π—Π΄Ρ€Π°Π²Π΅ΠΉ, свят

Perl6 (это Π½Π΅ просто ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ вСрсия Perl. Π­Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ язык)

class Π‘Π»ΠΎΠ²ΠΎ {
  has $.стойност;
}

my $здрасти = Π‘Π»ΠΎΠ²ΠΎ.new(стойност => 'Π·Π΄Ρ€Π°Π²Π΅ΠΉ, свят');
say $здрасти.tc; #Π—Π΄Ρ€Π°Π²Π΅ΠΉ, свят

Π― Π±Ρ‹Π» Π±Ρ‹ Ρ€Π°Π΄ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ это ΠΈ Π² Rust.

Π§Ρ‚ΠΎ Π±Ρ‹ это Π½ΠΈ стоило, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π² ECMAScript 2015 основаны Π½Π° синтаксисС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ· ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β„– 31 ΠΊ стандарту Unicode .

Perl с use utf8; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅, с XID_Start ΠΈ XID_Continue ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ· UAX # 31.

/ (?[ ( \p{Word} & \p{XID_Start} ) + [_] ])
        (?[ ( \p{Word} & \p{XID_Continue} ) ]) *    /x

Π”Π°! Бпасибо @SimonSapin!

Для Python это <XID_Start> <XID_Continue>* .

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ языки программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ ASCII, основаны Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ стандартС, Π½ΠΎ Π² дСталях ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰Π΅Π΅ΡΡβ€¦

Π― Π»ΠΈΡ‡Π½ΠΎ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², связанных с ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ. НапримСр, βˆ… (ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ мноТСств, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ∩ ΠΈ βˆͺ). ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ€Π°Π±ΠΎΡ‚/спСцификаций Π² ΠΊΠΎΠ΄ часто являСтся уТасным процСссом, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся многословный ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΉ для чтСния ΠΊΠΎΠ΄. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ Ρ‚Π΅ ΠΆΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈ Π² матСматичСских уравнСниях ΡΡ‚Π°Ρ‚ΡŒΠΈ, упростила Π±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΠ»Π° Π±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΈ сравнСниС ΠΊΠΎΠ΄Π° с уравнСниями ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π’ Ρ‡Π΅ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ смысл этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ? Помимо добавлСния возмоТности ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎ-настоящСму ΡƒΡ€ΠΎΠ΄Π»ΠΈΠ²ΡƒΡŽ смСсь Ρ€Π°Π·Π½Ρ‹Ρ… языков Π² вашСм ΠΊΠΎΠ΄Π΅ (английский β€” СдинствСнный ΠΏΠΎ-настоящСму ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΉ язык), это Π½Π΅ Π΄Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… прСимущСств Π² ΠΏΠ»Π°Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ языка. Или это ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° юникода Ρ€Π°Π΄ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ юникода?

@DoumanAsh НС каТдая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° являСтся ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ, ΠΈ свободноС Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ английским языком Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ являСтся Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ для программирования.

Π‘ΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ любого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² ΠΈΡ… ΠΊΠΎΠ΄Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π½Π° английском языкС. Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ происходит со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сам rustc. Но это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ язык Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ этим.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ использования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Π²ΠΈΠΆΡƒ, Π½Π΅ для написания производствСнного ΠΊΠΎΠ΄Π°, Π° для обучСния. МнС ΠΎΡ‡Π΅Π½ΡŒ нСприятно Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ людям, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ свободно Π²Π»Π°Π΄Π΅Ρ‚ΡŒ английским, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ программистами. Другая ситуация, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π½Π° иностранном языкС, Ссли Π² вашСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ интСрфСйсС Π΅ΡΡ‚ΡŒ тСкстовоС ΠΏΠΎΠ»Π΅ с надписью Β«pΕ™Γ­jmenΓ­Β», Π½ΠΎ Π²Ρ‹ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ «фамилия», Ρ‡Ρ‚ΠΎ странно. Π•Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ странно, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«rodnΓ©_čísloΒ» (Ρ‡Π΅ΡˆΡΠΊΠΈΠΉ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€). Для этого Π½Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ английского слова. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Ссли Π±Ρ‹ я писал Ρ‡Π΅ΡˆΡΠΊΠΎΠ΅ Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΈΠ»ΠΈ банковскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ странноС имя Π±Π΅Π· вСской ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹. Π’ любом случаС Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ пСрСносимо Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° вСская ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° для этого Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ лингвистам часто приходится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ IPA Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. АнглийскиС названия символов IPA ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ смСхотворно Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ. НапримСр, Π·Π²ΡƒΠΊ r Π² амСриканском английском языкС Π² словС red транскрибируСтся ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ символ ΙΉΜ , Π½ΠΎ называСтся ΠΏΠΎΡΡ‚Π°Π»ΡŒΠ²Π΅ΠΎΠ»ΡΡ€Π½Ρ‹ΠΌ рСтрофлСксивным аппроксимантом. https://en.wikipedia.org/wiki/Alveolar_and_postalveolar_compilers Π˜Ρ‚Π°ΠΊ, Ссли я ΠΏΠΈΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ прСобразования тСкста Π² Ρ€Π΅Ρ‡ΡŒ, я ΠΌΠΎΠ³ Π±Ρ‹ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ fn say_ΙΉΜ () вмСсто fn say_post_alveolar_retroflexive_approximant() .

Π§Ρ‚ΠΎ касаСтся Π½Π΅ мнСния, я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ здСсь Π±ΡƒΠ΄Π΅Ρ‚ интСрСсная дискуссия ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Unicode ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. НапримСр: ΠœΠΎΠ³Ρƒ Π»ΠΈ я Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ price€ ? ВСроятно, Π½Π΅Ρ‚, я Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ price$ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ? ΠœΠΎΠ³Ρƒ Π»ΠΈ я ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ макрос β†’![] для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ²? Π― знаю, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½ΠΎ β†’ β€” это «матСматичСский символ» http://www.fileformat.info/info/unicode/char/2192/index.htm . ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ лСксировании Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹, Π° ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅Ρ‚, ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, rust Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ просто Ρ‚ΡƒΠΏΠΎ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ стандарт юникода, являСтся Π»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π±ΡƒΠΊΠ²ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

@timthelion Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Rust Π½Π΅ просто Ρ‚ΡƒΠΏΠΎ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ стандарт юникода, являСтся Π»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π±ΡƒΠΊΠ²ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ β€” ΠΎΠ½ полагаСтся Π½Π° свойства юникода XID_Start ΠΈ XID_Continue , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΠΎ всСх Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

  • say_ΙΉΜ  Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈ 'ΙΉ' , ΠΈ 'Μ ' ΡΠ²Π»ΡΡŽΡ‚ΡΡ XID_Continue.
  • price€ ΠΈ price$ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ '€' ΠΈ '$' Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ XID_Continue.
  • β†’![] Π½Π΅ допускаСтся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ 'β†’' Π½Π΅ являСтся XID_Start.
  • pΕ™Γ­jmenΓ­ ΠΈ rodnΓ©_číslo Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹.

@dtolnay спасибо Π·Π° объяснСниС. НадСюсь, Π²Ρ‹ Π½Π΅ обидСлись Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΠ» слово Β«Ρ‚ΡƒΠΏΠΎΠΉΒ», Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это Π±Ρ‹Π»ΠΎ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ΅ слово.

НСт, просто ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π΅Π»ΠΈΠΊΠΈΠ΅ ΡƒΠΌΡ‹ Π΄ΡƒΠΌΠ°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, ΠΈ Ρƒ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… людСй ΠΈΠ· тСхничСского ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Π° Unicode Π±Ρ‹Π»ΠΈ Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ вас.

Π― ΠΌΠΎΠ³Ρƒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования Π² производствС.

НСкоторыС слова Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ области Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ пСрСвСсти Π½Π° английский язык, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ³Ρ€Π°ΠΌ, мСстным ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΡ„Π»Π°ΠΉΠ½-сСрвисам) придСтся ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с китайскими названиями блюд, ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π³Π΅Ρ€ΠΎΠ΅Π², гСографичСскими названиями. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°ΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π² компаниях, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ²Ρ‹ английскиС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹, Π½ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° своим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈ функциям. Они Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ странныС ΠΈΠΌΠ΅Π½Π°, Ссли ΠΈΠΌ придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ английский язык, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΉ для понимания Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… сомнСний Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас ΠΌΠ½ΠΎΠ³ΠΎ случаСв. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ:

  • КакиС ΠΈΠΌΠ΅Π½Π½ΠΎ символы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹. НапримСр, ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡ‚ ASCII, вСроятно, слСдуСт ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.
  • Какая нормализация Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°: Π΄Π²Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСны с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ (Ρ€Π°Π·Π½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ UTF-8 Π² исходных Ρ„Π°ΠΉΠ»Π°Ρ…), Π½ΠΎ ΠΏΡ€ΠΈ этом ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ эквивалСнтными.

НСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… языков ΡΠΎΠ³Π»Π°ΡΡƒΡŽΡ‚ΡΡ с ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ β„– 31 ΠΊ стандарту Unicode, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ нСбольшиС различия Π² дСталях. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Π΅ΠΌ Π²Ρ‹Π·Π²Π°Π½Ρ‹ эти различия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ для Rust.

https://rosettacode.org/wiki/Unicode_variable_names содСрТит Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для ΠΌΠ½ΠΎΠ³ΠΈΡ… языков.

Π― согласСн с @SimonSapin - Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ сомнСваСтся, Ρ‡Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ сущСствуСт стандартного Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· нас (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, я) Π½Π΅ Π² состоянии ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ компромиссы. Π― ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ, ΠΊΡ‚ΠΎ собирал Π±Ρ‹ ограничСния ΠΈ Π΄Π°Π²Π°Π» Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ. Π― ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ любоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅, Ρ‡Π΅ΠΌ отсутствиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, хотя я ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅Π» Π±Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΌΡƒ -Ρ‚ΠΎ ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚Ρƒ (Π² ΠΈΠ΄Π΅Π°Π»Π΅, спСцификации ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Unicode, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ языку), Ρ‡Π΅ΠΌ просто ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ».

@nikomatsakis Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π»ΠΎ нСбольшиС различия ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ языками, Π½ΠΎ Ссли Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚ΡΡ Π·Π° это исслСдованиС, ΠΈ ΠΌΡ‹ всС Ρ€Π°Π²Π½ΠΎ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ, Ρ‚ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π² точности слСдуя UAX # 31 (Ρ‡Ρ‚ΠΎ, я ΡΡ‡ΠΈΡ‚Π°ΡŽ, являСтся нашСй Ρ†Π΅Π»ΡŒΡŽ). тСкущая рСализация Π΄Π΅Π»Π°Π΅Ρ‚) являСтся прСкрасным Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, стоит ΠΏΡ€ΠΎΠΉΡ‚ΠΈ процСсс RFC с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ соотвСтствуСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. (КакиС символы ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ/ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΌΠΈ вСрсиями Unicode ΠΈ Ρ‚. Π΄.) Π― ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Ρ‚ΠΎΠΌΡƒ, ΠΊΡ‚ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ этот RFC, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ UAX 31 свСрху Π²Π½ΠΈΠ· хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ (ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ вСроятно, использования ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ подмноТСства ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ) профиля PRECIS [1] для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ². Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π±Ρ‹ Π½Π°ΠΌ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π»ΠΎΠΊΠ°Π»Π΅ΠΉ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выводят тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отличаСтся Π² прСдставлСнии Unicode), Π° Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ» для опрСдСлСния допустимого ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Rust.

Π― Π½Π΅ знаю ΠΎ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… рСализациях срСды PRECIS Π½Π° Rust (я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ большая Ρ‡Π°ΡΡ‚ΡŒ инфраструктуры Unicode, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для Π΅Π΅ создания, всС Π΅Ρ‰Π΅ отсутствуСт, Π½ΠΎ это, вСроятно, придСтся ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² любом случаС).

Π― Π±Ρ‹ Π½Π΅ Π½Π°Π·Π²Π°Π» сСбя экспСртом, Π½ΠΎ я ΠΏΠΎΠΌΠΎΠ³ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ PRECIS ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ Π·Π½Π°ΠΊΠΎΠΌ с RFC ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ камнями ΠΈ ошибками, поэтому я Π±Ρ‹Π» Π±Ρ‹ Ρ€Π°Π΄ ΠΏΠΎΠΌΠΎΡ‡ΡŒ (ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π·Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ PRECIS) Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ.

[1] [RFC 7564] (https://tools.ietf.org/html/rfc7564): Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° PRECIS: ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ сравнСниС ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… строк Π² ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°Ρ…

Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΌΡ‹ΡΠ»ΡŒ ΠΎ пСрсонаТах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выглядят ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. Π’ΠΎΡ‚ википСдия
ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎ вопросу
https://en.wikipedia.org/wiki/Duplicate_characters_in_Unicode

Π’ΠΎΡ‚ ΡΡ‚Π°Ρ‚ΡŒΡ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ символы ΠΈΠ·
азиатскиС сцСнарии Π² основном ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹:

https://people.w3.org/rishida/scripts/chinese/

11.04.2017, 21:01, Бэм Π£Π°ΠΉΡ‚Π΄ написал:
>

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ (ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ вСроятно, использования
ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ подмноТСство ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ) ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ PRECIS [1]
для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ². Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅
слСдуСт ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,
для Π»ΠΎΠΊΠ°Π»Π΅ΠΉ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выводят тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ,
Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отличаСтся Π² своСм прСдставлСнии Unicode), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ
Ρ‡Π΅Ρ‚ΠΊΠΈΠΉ ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ» для опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ являСтся Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Rust
ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.

Π― Π½Π΅ знаю ΠΎ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… рСализациях PRECIS Π½Π° Rust.
framework (ΠΌΠ½ΠΎΠ³ΠΎ инфраструктуры Unicode, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для создания ΠΎΠ΄Π½ΠΎΠ³ΠΎ
всС Π΅Ρ‰Π΅ отсутствуСт, я Π΄ΡƒΠΌΠ°ΡŽ, Π½ΠΎ это, вСроятно, придСтся ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ
ΠΊΠ°ΠΊ-Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅).

[1] RFC 7564 https://tools.ietf.org/html/rfc7564 : ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° PRECIS:
ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ сравнСниС ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… строк
Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

β€”
Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ это, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ вас упомянули.
ΠžΡ‚Π²Π΅Ρ‚ΡŒΡ‚Π΅ Π½Π° это письмо Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, просмотритС Π΅Π³ΠΎ Π½Π° GitHub
https://github.com/rust-lang/rust/issues/28979#issuecomment-293367700 ,
ΠΈΠ»ΠΈ Π·Π°Π³Π»ΡƒΡˆΠΈΡ‚ΡŒ Ρ‚Π΅ΠΌΡƒ
https://github.com/notifications/unsubscribe-auth/ABU7-IMgXefW2yZYyM0tn8qLhpGFw0bSks5ru84GgaJpZM4GM3Lj .

@SamWhited ΠŸΠΎΡ‡Π΅ΠΌΡƒ PRECIS вмСсто Unicode NFC ΠΈΠ»ΠΈ NFKC?

ΠŸΠΎΡ‡Π΅ΠΌΡƒ PRECIS, Π° Π½Π΅ NFC ΠΈΠ»ΠΈ NFKC Unicode?

TL:DR β€” Нормализация β€” это всСго лишь ΠΎΠ΄ΠΈΠ½ шаг, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, являСтся Π»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ допустимым ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ (ΠΈΠ»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹) Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ.

@SimonSapin Нормализация Unicode β€” это всСго лишь ΠΎΠ΄ΠΈΠ½ шаг Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ PRECIS (Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ; Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, NFC, Ссли ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ), ΠΎΠ΄Π½Π°ΠΊΠΎ PRECIS ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр Π²Π΅Ρ‰Π΅ΠΉ. НапримСр, Ρ„ΠΎΡ€ΠΌΡ‹ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ сопоставлСниС ΡˆΠΈΡ€ΠΈΠ½Ρ‹ (я Ρ‚Π°ΠΊ Π΄ΡƒΠΌΠ°ΡŽ?), поэтому FullWidth Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ οΌ¦ο½•ο½Œο½ŒοΌ·ο½‰ο½„ο½”ο½ˆ . Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ, которая Ρ…ΠΎΡ‡Π΅Ρ‚ Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ тСкст ΠΏΠΎΠ»Π½ΠΎΠΉ ΡˆΠΈΡ€ΠΈΠ½Ρ‹, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ (это, вСроятно, большС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с восточноазиатскими символами, Ρ‡Π΅ΠΌ с латинскими символами, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΠΈ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ тСкст ΠΏΠΎΠ»Π½ΠΎΠΉ ΡˆΠΈΡ€ΠΈΠ½Ρ‹, ΠΌΠΎΠ³ Π±Ρ‹ Π·Π²ΠΎΠ½ΠΈΡ‚Π΅ ΠΈ скаТитС ΠΌΠ½Π΅, Ссли я ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ искаТаю ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ PRECIS ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ подмноТСства Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… свойств символов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±ΡƒΠΊΠ², Ρ†ΠΈΡ„Ρ€, дСфисов ΠΈ начинаСтся с Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² этом Ρ€ΠΎΠ΄Π΅).

_ΠžΡ‚ΠΊΠ°Π· ΠΎΡ‚ отвСтствСнности:_ Π― Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ Π΄ΡƒΠΌΠ°Π», Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡˆΠΈΡ€ΠΈΠ½Π½Ρ‹ΠΉ тСкст ΠΈΠ»ΠΈ Π½Π΅Ρ‚; это просто ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠžΡ‡Π΅Π½ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ нормализация β€” это всС, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅; Go Ρ‚ΠΎΠ»ΡŒΠΊΠΎ провСряСт, ΠΈΠΌΠ΅ΡŽΡ‚ Π»ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ свойство letter ΠΈΠ»ΠΈ number, я Π΄ΡƒΠΌΠ°ΡŽ, поэтому, Ссли ΠΎΠ½ΠΈ обходятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этим, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, это Ρ‚ΠΎΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ для нас. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½ΡƒΠΆΠ½ΠΎ большС Π΄ΡƒΠΌΠ°Ρ‚ΡŒ.

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅: это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ спСцификация Go (Ρ‡Ρ‚ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ): https://golang.org/ref/spec#Source_code_representation

Π§Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ PRECIS? Π•ΡΡ‚ΡŒ Π»ΠΈ язык программирования?

Π§Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ PRECIS? Π•ΡΡ‚ΡŒ Π»ΠΈ язык программирования?

Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ любой язык, ΠΊΡ€ΠΎΠΌΠ΅ Go .

Бвязанная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Go 2: golang/go#16033

Π’ΠΎ Π²Ρ‚ΠΎΡ€Π½ΠΈΠΊ, 11 апрСля 2017 Π³., Π² 14:07:49 -07:00 Бэм Π£Π°ΠΉΡ‚Π΄ написал:

НапримСр, Ρ„ΠΎΡ€ΠΌΡ‹ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ ΡˆΠΈΡ€ΠΈΠ½Ρƒ, поэтому FullWidth Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ οΌ¦ο½•ο½Œο½ŒοΌ·ο½‰ο½„ο½”ο½ˆ .

NFKC Π΄Π΅Π»Π°Π΅Ρ‚ это:

Python 3.6.0 (default, Jan 16 2017, 12:12:55)
[GCC 6.3.1 20170109] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> οΌ¦ο½•ο½Œο½ŒοΌ·ο½‰ο½„ο½”ο½ˆ = 1
>>> FullWidth
1

--
Π‘ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌΠΈ поТСланиями,
lilydjwg

@SamWhited , Π² вашСй ΠΏΠ΅Ρ€Π²ΠΎΠΉ ссылкС я Π½Π°Ρ…ΠΎΠΆΡƒ:

identifier = letter { letter | unicode_digit } .
letter        = unicode_letter | "_" .

Но, насколько я ΠΌΠΎΠ³Ρƒ ΡΡƒΠ΄ΠΈΡ‚ΡŒ, Go Π² настоящСС врСмя Π½Π΅ выполняСт Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΈ использованиС PRECIS являСтся ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ?

Но, насколько я ΠΌΠΎΠ³Ρƒ ΡΡƒΠ΄ΠΈΡ‚ΡŒ, Go Π² настоящСС врСмя Π½Π΅ выполняСт Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΈ использованиС PRECIS являСтся ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ?

@SimonSapin это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ; Π½Ρƒ, Π΄Π°ΠΆΠ΅ Π½Π΅ совсСм ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, просто идСя, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ этот вопрос (ΠΈΠ·Π²ΠΈΠ½ΠΈΡ‚Π΅, ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ это ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ мою ссылку, ΠΈ ΠΎΠ½Π° Π±Ρ‹Π»Π° ΠΏΠ»ΠΎΡ…ΠΎ сформулирована; я Π½Π΅ Ρ…ΠΎΡ‚Π΅Π» ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ это прямо сСйчас, просто я Π½Π΅ знаю, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ Go, для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ ASCII).

@SimonSapin

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, стоит ΠΏΡ€ΠΎΠΉΡ‚ΠΈ процСсс RFC с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ соотвСтствуСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

πŸ‘

Π― просто Ρ‡ΠΈΡ‚Π°Π» UAX #31 , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ сдСлали, ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ прСимущСство использования профиля PRECIS Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΎΡΡŒ для мСня: Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ stringprep ΠΈ использованиС вмСсто Π½Π΅Π³ΠΎ PRECIS, ΠΎΠ½ обСспСчиваСт способ Π±Ρ‹Ρ‚ΡŒ совмСстимым ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΌ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ для вСрсий Unicode ( ΠΏΡƒΡ‚Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ свойствами ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ, Π° Π½Π΅ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ).

Π₯отя TR31 ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ Β« нСизмСняСмых ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Β», ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΡƒΡŽ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΎΠ½ фактичСски прСдставляСт собой нСсколько ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° PRECIS, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· класса ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, Π½ΠΎ Π±Π΅Π· сообраТСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ PRECIS Π΄Π°Π΅Ρ‚ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ порядка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ примСняСтся (я Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ?), ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΡ€Π°ΠΉΠ½ΠΈΠ΅ случаи, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ структурой PRECIS, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ использованиС грСчСской ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ сигмы, ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… случаСв Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ…Π°Π½Π³Ρ‹Π»ΡŒ Π΄ΠΆΠ°ΠΌΠΎ (ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, я Π½Π΅ экспСрт Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· этих , Π½ΠΎ для этого ΠΈ сущСствуСт PRECIS, спСциалисты ΡƒΠΆΠ΅ сдСлали свою Ρ€Π°Π±ΠΎΡ‚Ρƒ).

ΠΎΠ½ обСспСчиваСт ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ для вСрсий Unicode (ΠΏΡƒΡ‚Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ свойствами ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ, Π° Π½Π΅ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ).

Π― Π½Π΅ понимаю этот ΠΌΠΎΠΌΠ΅Π½Ρ‚. XID_Start ΠΈ XID_Continue ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ свойствами.

Π― Π½Π΅ понимаю этот ΠΌΠΎΠΌΠ΅Π½Ρ‚. XID_Start ΠΈ XID_Continue ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ свойствами.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎΠ³Π΄Π° я Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ понял UAX 31; ΠΌΠ½Π΅ показалось, Ρ‡Ρ‚ΠΎ для этого трСбуСтся опрСдСлСнная вСрсия Unicode. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Ρ‹Π²Π°Ρ, я Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΎΡ‚ΠΊΡƒΠ΄Π° я это взял.

НС ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ это подходящСС мСсто для ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ интСрСсныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, вСроятно, Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ матСматичСских символов. Π­Ρ‚ΠΎΠ³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, записав ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ссли Ρ†Π΅Π»ΡŒΡŽ являСтся Π»ΡƒΡ‡ΡˆΠ°Ρ коррСляция с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ уравнСниями.

НапримСр, Ξ” (Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр) ΠΏΡ€ΠΎΡ‚ΠΈΠ² Ξ΄ (Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр) Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ снимкС экрана. Π›ΠΈΠ½Ρ‚Π΅Ρ€ Π½Π΅ являСтся /Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ/, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ здСсь Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΈΠ½ΠΎΠ³ΠΎ случая.

screen shot 2017-06-27 at 2 28 55 pm

ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ смайлики Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ Π½Π΅ XID Start/Continue, ΠΊΠ°ΠΊ Π² Swift?

@fwrs , эмодзи сСйчас Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС, Ρ‡Π΅ΠΌ символы, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ эмодзи.

Благодаря Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ поставщикам Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ соСдинСния эмодзи (ZWJ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просто ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ свои Ρ†Π²Π΅Ρ‚Π° ΠΈ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΈΠ΄Π½Ρ‹ Π½Π΅Π²ΠΎΠΎΡ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌ Π³Π»Π°Π·ΠΎΠΌ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Emoji быстро Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π³ΠΎΠ΄, Ρ‡Ρ‚ΠΎ Π½Π΅ являСтся Ρ‡Π΅ΠΌ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ трСбуСтся языкам программирования систСмного уровня, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят Π±Ρ‹Ρ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌΠΈ.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, хотя это ΠΌΠΈΠ»ΠΎ, я Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это Ρ…ΠΎΡ€ΠΎΡˆΠΎ согласуСтся с цСлями Rust. Но языки сцСнариСв/ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ языки Π½Π° основС Ρ€ΠΆΠ°Π²Ρ‡ΠΈΠ½Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ эмодзи, Π² зависимости ΠΎΡ‚ ΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ.

@ryankurte Π’ вашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΅ΡΡ‚ΡŒ сСмантичСская ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: Π²Ρ‹ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚Π΅ матСматичСскиС Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, Π½ΠΎ использовали U + 0394 Π“Π Π•Π§Π•Π‘ΠšΠΠ― ЗАГЛАВНАЯ Π‘Π£ΠšΠ’Π ДЕЛЬВА, Π° Π½Π΅ U + 2206 ΠŸΠ Π˜Π ΠΠ‘ΠžΠ’ΠšΠ. ΠŸΠ΅Ρ€Π²Π°Ρ являСтся Π±ΡƒΠΊΠ²ΠΎΠΉ грСчСского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° ΠΈ поэтому ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ рСгистра; послСдний являСтся матСматичСским символом ΠΈ Π½Π΅ являСтся Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ.

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ этот ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ: https://github.com/rust-lang/rust/issues/4928#issuecomment -343137316

Π― Π½Π΅ Π²ΠΈΠ΄Π΅Π» здСсь возмоТности Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°Ρ‚Π°ΠΊΠΈ Π½Π° основС Π³ΠΎΠΌΠΎΠ³Π»ΠΈΡ„ΠΎΠ² (Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ упомянул ΠΎ Π½ΠΈΡ…, поТалуйста, Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ внимания Π½Π° ΡˆΡƒΠΌ), Π½ΠΎ я просто Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ» ΠΎΠ±Ρ€Ρ‹Π²ΠΎΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ lint, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚ ΠΎ ΠΊΠΎΠ΄Π΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ этому:

#![feature(non_ascii_idents)]
fn main() {
    let a = 2;
    let Π° = 3;
    assert_eq!(a, 2);  // OK
    assert_eq!(Π°, 3);  // OK
}

Π’ Π΄Π²ΡƒΡ… словах, эти Π΄Π²Π° a ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ символами юникода, поэтому вторая привязка let Π½Π΅ затСняСт ΠΏΠ΅Ρ€Π²ΡƒΡŽ, ΠΈ ΠΎΠ±Π΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ проходят (ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ игровая ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ юникода, поэтому СдинствСнный способ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ это локально; Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для мСня).

Π­Ρ‚Π° «функция» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для ввСдСния эксплойтов Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Rust, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Π² частности, учитывая, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π½Π΅Π²Ρ‹Π΅ привязки let ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ идиоматичСскими Rust, Π² Ρ‚ΠΎΠΌ числС ΠΈ я.

PS: эта Β«Ρ„ΠΈΡ‡Π°Β» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° Π² закулисных сорСвнованиях ΠΏΠΎ Rust, хотя эта #![feature(non_ascii_idents)] Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ :)

@gnzlbg Π― полагаю , Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ нСкоторая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° обнаруТСния ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ люди Π½Π΅ замСняли ваши Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой Π½Π° грСчСскиС Π²ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, Π½ΠΎ я Π½Π΅ знаю, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π»ΠΈ это ΠΊ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ. Если это Ρ‚Π°ΠΊ, Ρ‚ΠΎ это Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ; Ссли Π½Π΅Ρ‚, Ρ‚ΠΎ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Ρƒ нас Π΅ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ инструмСнты для этого.

Π― Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ обСспокоСн Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ это ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π½Π° Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈΠ· компилятора, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя ΠΎΠ½ Π½Π΅ ΠΏΡ€Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π» Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ RFC. МСня ΠΎΡ‡Π΅Π½ΡŒ Π²ΠΎΠ»Π½ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Rust являСтся языком 21-Π³ΠΎ Π²Π΅ΠΊΠ°, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Unicode, ΠΈ Ρ‡Ρ‚ΠΎ Rust Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π΅Π½ ΠΊ Π½Π΅ говорящим ΠΏΠΎ-английски программистам. Π§Π΅Π³ΠΎ ΠΌΠ½Π΅ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚, Ρ‚Π°ΠΊ это возмоТности Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ RFC.

@ΠšΠ΅Ρ‚ΡΡƒΠ±Π°Π½

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ нСкоторая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° обнаруТСния ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ люди Π½Π΅ замСняли ваши Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой Π½Π° грСчСскиС Π²ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, Π½ΠΎ я Π½Π΅ знаю, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π»ΠΈ это ΠΊ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ.

Π΄Π°, я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» @oli-obk Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ clippy, рСализация Rust вмСсто этого просто использовала Π±Ρ‹ послСдний ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ список ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹:

http://www.unicode.org/Public/security/revision-06/confusables.txt

Атаки Π½Π° основС Π³ΠΎΠΌΠΎΠ³Π»ΠΈΡ„ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ. Однако этот список Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ систСмы сборки.

@ΠšΠ΅Ρ‚ΡΡƒΠ±Π°Π½

Если вас это Π²ΠΎΠ»Π½ΡƒΠ΅Ρ‚, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ юникод Π² своих ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ…, ΠΈ эти языки ΠΈΠΌΠ΅ΡŽΡ‚ процСссы, ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Π½Π° процСсс RFC. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚Π΅Ρ…. ΠšΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ… с ΠΎΡ‚Π·Ρ‹Π²Π°ΠΌΠΈ Π² этом выпускС ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ RFC Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΎΡ€Π³Π°Π½ΠΎΠ²? Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ просто ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ/обсуТдСнии ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ, ΠΈ ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ это ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ RFC.

Π’ ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ смыслС я надСюсь, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ навсСгда останСмся с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ASCII. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Unicode β€” это огромная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ. НСкоторыС ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Π»ΠΈΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² сопоставлСний NFKC Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ:

>>> β„Œ = 1
>>> H
1
>>> β…¨ = 42
>>> IX
42
>>> β„• = 23
>>> N
23
>>> import math
>>> β„― = math.e
>>> e
2.718281828459045
>>> ℨ = 2
>>> Z
2

@mitsuhiko Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ Π΅ΡΡ‚ΡŒ такая боль. ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ просто ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ с Π½Π΅ΠΉ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ, ΠΈ ΠΎΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π²Π°ΠΌ _Π»ΠΈΡ‡Π½ΠΎ_ Π½Π΅ Π½ΡƒΠΆΠ½Π°.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ RFC явно ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ NFC вмСсто NFKC послС большого количСства обсуТдСний ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… Π½Π° эти.

Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ https://github.com/rust-lang/rust/issues/55467.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

behnam picture behnam  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

pedrohjordao picture pedrohjordao  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

overvenus picture overvenus  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

SharplEr picture SharplEr  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

defuz picture defuz  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ