답변:
A의 현대 (전체 아웃 유니 코드 지원) 시스템이 안 에 중점을두고 "안"- 문제. 그 대답에서 인용 한 것처럼
디폴트는
NAME_REGEX="^[a-z][-a-z0-9]*\$"
이것은 현재 시스템에는 지나치게 엄격 할 수 있지만 "걱정해야 할 것이 하나도 없습니다"와 같이 관리가 더 쉽습니다. 사용자 이름은 여러 곳에서 사용됩니다. 예를 들어 홈 디렉토리는 아마도 형식 일 것입니다 /home/username
. 대부분의 제정신 파일 시스템은 완전한 유니 코드 지원을 제공하지만 컴퓨터와 관련하여 모든 상황에서 온전함이 보장되는 것은 아닙니다.
시스템에서 사용하는 실제 로그인 이름 (이 규칙에 속함)이 UID에 매핑되고 /etc/passwd
문자열 인 "전체 이름"이 있으며 가장 유효한 문자를 입력 할 수 있지만 "비 ASCII"경고).
해야 할 일 : 해당되는 경우, 사용자 이름에 분음 부호가없는 이름 (또는 라틴어가 아닌 스크립트의 경우 로마자)과 실제 이름에 대한 실제 형식을 사용합니다. / etc / passwd의 항목은 다음과 유사 할 수 있습니다.
martrang:x:1001:1001:Märt Rang,,,:/home/martrang:/bin/bash
비 ASCII 로그인 이름을 사용하는 것은 일반적으로 지원되지 않으며 문제를 일으키는 레시피처럼 들립니다. UTF-8이 사실상 표준 인코딩이되고 있지만 다른 인코딩을 사용하는 사람들이 여전히 많습니다 (특히 영어권 언어 이외의 지역에서 사람들이 오랫동안 호환되지 않는 다른 8 비트 또는 16 비트 인코딩을 사용하는 경우) ). 예를 들어 사용자 이름을 현재 로캘의 인코딩으로 변환하지 않고 현재 로캘의 인코딩에 따라 사용자 이름을 해석하려고하는 응용 프로그램이있을 수 있습니다. 귀하의 로그인 이름은 귀하의 이메일 주소의 왼쪽 부분이며, 귀하가 선택한 인코딩에 따라 귀하의 메일이 통과하는 모든 시스템에서 지원되고 존중되기 때문에 문제가 발생할 가능성이 훨씬 높습니다.
로그인 이름은 컴퓨터를위한 것입니다. 로그인 이름에 ASCII를 사용하십시오. 전체 이름은 인간을위한 것입니다. 전체 이름으로 UTF-8을 사용하십시오.
마지막 질문은 대답하기가 가장 쉬운 방법입니다. 전통, 실용성, 단순성 (개발자 용) 및 이식성 (자선을 원할 경우), 또는 후진성, 실용성 (사용자 용), 무지 및 비 이동성 티. US-ASCII 는 단순히 새벽부터 (젊은 사람들을위한 웹) 거의 모든 곳에서 사용 된 문자 집합입니다.
많은 응용 프로그램에서 영어 키보드에서 볼 수있는 문자 (때로는 그렇지 않은 문자) 이외의 문자는 기본적으로 지원되지 않습니다. 즉, 소프트웨어가 소프트웨어를 지원하거나 지원하지 않을 수 있으며 예상치 못한 결과 만 기대할 수 있습니다.