영어프랑스어스페인어

Ad


온웍스 파비콘

enc2xs - 클라우드에서의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 enc2xs를 실행하세요.

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 enc2xs 명령입니다.

프로그램:

이름


enc2xs -- Perl 인코딩 모듈 생성기

개요


enc2xs -[옵션]
enc2xs -M ModName 맵파일...
enc2xs -C

기술


enc2xs 유니코드 문자 매핑 중 하나에서 인코딩에 사용할 Perl 확장을 구축합니다.
파일(.ucm) 또는 Tcl 인코딩 파일(.enc). 빌드 중에 내부적으로 사용되는 것 외에도
인코딩 모듈의 프로세스를 사용할 수 있습니다. enc2xs Perl에 자신만의 인코딩을 추가하려면 아니요
XS에 대한 지식이 필요합니다.

빠른 안내서


Perl에 대해 가능한 한 적게 알고 싶지만 새로운 인코딩을 추가해야 한다면,
이 장을 읽고 나머지는 잊어버리세요.

0. .ucm 파일을 준비하세요. 다른 곳에서 얻을 수도 있고 직접 작성할 수도 있습니다.
스크래치 또는 인코딩 배포판에서 하나를 가져와 사용자 정의할 수 있습니다. 에 대한
UCM 형식은 다음 장을 참조하세요. 아래 예에서는 이론적인 이름을
myascii 인코딩, 정의됨 내.ucm. "$"는 쉘 프롬프트입니다.

$ ls -F
내.ucm

1. 다음과 같이 명령을 실행합니다.

$ enc2xs -M 내 my.ucm
Makefile.PL 생성
My.pm 생성
README 생성 중
변경사항 생성

이제 현재 디렉토리를 살펴보십시오. 다음과 같아야합니다.

$ ls -F
Makefile.PL My.pm my.ucm t/

다음 파일이 생성되었습니다.

Makefile.PL - MakeMaker 스크립트
My.pm - 인코딩 하위 모듈
t/My.t - 테스트 파일

1.1.
*.ucm을 모듈과 함께 설치하려면 다음을 수행하십시오.

$ mkdir 인코딩
$ mv *.ucm 인코딩
$ enc2xs -M 내 인코딩/*ucm

2. 생성된 파일을 편집합니다. 시간도 없고 할 생각도 없다면 할 필요는 없습니다.
다른 사람에게 주세요. 하지만 포드를 편집하고 더 많은 테스트를 추가하는 것이 좋습니다.

3. 이제 모든 Perl Monger가 좋아하는 명령을 실행하십시오.

$ 펄 Makefile.PL
Encode::My를 위한 Makefile 작성

4. 이제 만들기만 하면 됩니다.

확인 $
cp My.pm blib/lib/Encode/My.pm
/usr/local/bin/perl /usr/local/bin/enc2xs -Q -O \
-o encode_t.c -f encode_t.fnm
myascii 읽기(myascii)
컴파일된 양식 작성
스트링 테이블의 경우 128바이트
384바이트(75%) 저장 중복 발견
하위 문자열을 사용하면 1바이트(0.775%)가 절약됩니다.
....
chmod 644 blib/arch/auto/Encode/My/My.bs
$

걸리는 시간은 컴퓨터의 속도와 크기에 따라 다릅니다.
인코딩은. euc-tw와 같은 큰 작업을 수행하지 않는 한 시간이 많이 걸리지 않습니다.
긴.

5. 이미 "설치"를 수행할 수 있지만 먼저 테스트해야 합니다.

$ 테스트하기
PERL_DL_NONLAZY=1 /usr/local/bin/perl -Iblib/arch -Iblib/lib \
-e 'use Test::Harness qw(&runtests $verbose); \
$상세=0; 실행 테스트 @ARGV;' t/*.t
t/내....알았어
모든 테스트가 성공했습니다.
파일=1, 테스트=2, 벽시계 초 0
(0.09 cusr + 0.01 csys = 0.09 CPU)

6. 테스트 결과에 만족한다면 "make install"만 하면 됩니다.

7. Encode의 요구 로딩 목록에 인코딩을 추가하려는 경우(그러므로 추가할 필요가 없음)
"Encode::YourEncoding 사용"), 실행

enc2xs -C

로컬 설정을 제어하는 ​​모듈인 Encode::ConfigLocal을 업데이트합니다. 이후,
"인코드를 사용하세요;" 요청 시 인코딩을 로드하기에 충분합니다.

XNUMXD덴탈의 유니 코드 캐릭터 지도


인코딩은 소스 문자 매핑에 UCM(유니코드 문자 맵) 형식을 사용합니다. 이것
형식은 IBM의 ICU 패키지에서 사용되며 Nick Ing-Simmons가 다음과 함께 사용하기 위해 채택했습니다.
인코딩 모듈. UCM은 Tcl의 인코딩 맵보다 더 유연하고 사용자가 훨씬 더 많기 때문에
친절합니다. 이는 현재 인코딩에 권장되는 형식입니다.

UCM 파일은 다음과 같습니다.

#
# 코멘트
#
"US-ascii" # 필수
"ascii" # 선택사항
1 # 필수; 보통 1
1 # 최대. 바이트/문자 수
\x3F # 대체 문자
#
참맵
\x0000 |00 #
\x0001 |01 #
\x0002 |02 #
....
\x007C |7 # 수직선
\x007D |7 # 오른쪽 중괄호
\x007E |7 # 물결표
\x007F |7 #
참맵 종료

· "#" 뒤에 오는 내용은 모두 주석으로 처리됩니다.

· 헤더 섹션은 CHARMAP이라는 단어가 포함된 줄까지 계속됩니다. 이 구역
의 형태를 가지고 있습니다 가치, 한 줄에 한 쌍씩. 값으로 사용되는 문자열은 다음과 같아야 합니다.
인용. 베어워드는 숫자로 처리됩니다. \트리플 엑스 바이트를 나타냅니다.

대부분의 키워드는 설명이 필요하지 않습니다. 하위 문자 대체 문자가 아닌 대체 문자를 의미합니다.
하위 문자. 유니코드 시퀀스를 이 인코딩으로 디코딩했지만 일치하는 항목이 없는 경우
문자가 발견되면 여기에 정의된 바이트 시퀀스가 ​​사용됩니다. 대부분의 경우,
여기서 값은 \x3F입니다. ASCII에서는 물음표입니다.

· CHARMAP은 문자표 섹션을 시작합니다. 각 행은 다음과 같은 형식을 갖습니다.

\xXX.. |0 # 코멘트
^^
| | +- 대체 플래그
| +--------- 인코딩된 바이트 시퀀스
+--------------- 유니코드 문자 ID(XNUMX진수)

형식은 대체 플래그를 제외하고 헤더 섹션과 거의 동일합니다. |
0..3이 뒤따릅니다. 가능한 값의 의미는 다음과 같습니다.

|0 왕복 여행은 안전합니다. 유니코드로 디코딩된 문자는 다시 동일한 바이트로 인코딩됩니다.
순서. 대부분의 캐릭터에는 이 플래그가 있습니다.

|1 유니코드 -> 인코딩에 대한 대체입니다. enc2xs가 표시되면 이 문자를 추가합니다.
지도만 인코딩합니다.

|2 코드 포인트가 없으면 하위 문자 매핑을 건너뜁니다.

|3 인코딩 대체 -> 유니코드. enc2xs가 표시되면 이 문자를 추가합니다.
지도만 디코딩합니다.

· 마지막으로 END OF CHARMAP으로 섹션을 종료합니다.

UCM 파일을 수동으로 생성하는 경우 ascii.ucm 또는 기존 파일을 복사해야 합니다.
처음부터 직접 작성하는 대신 자신의 것과 가까운 인코딩을 사용하세요.

그럴 때는 최소한 떠나도록 하세요. U0000U0020 현재 환경이 아닌 이상
EBCDIC입니다.

경고: UCM의 모든 기능이 구현되는 것은 아닙니다. 예를 들어 icu:state는 사용되지 않습니다.
그렇기 때문에 알고리즘을 지원하려면 Perl 모듈을 작성해야 합니다.
인코딩, 특히 ISO-2022 시리즈. 이러한 모듈에는 Encode::JP::2022_JP,
인코딩::KR::2022_KR 및 인코딩::TW::HZ.

갓돌 복제 매핑
지도를 생성할 때 매핑을 왕복으로 안전하게 만들어야 합니다. 그건,
"encode('your-encoding', decode('your-encoding', $data)) eq $data"는 모두를 나타냅니다.
"|0"으로 표시된 문자입니다. 확인하는 방법은 다음과 같습니다.

· 유니코드 순서로 지도를 정렬하세요.

· 중복된 항목이 있는 경우 '|1' 또는 '|3'으로 표시합니다.

· 그리고 '|1' 또는 '|3' 항목이 '|0' 항목 뒤에 오는지 확인하세요.

다음은 big5-eten의 예입니다.

\xF2550\xF9 |9
\xA2550\xA2 |4

내부 인코딩 -> 유니코드 및 유니코드 -> 인코딩 맵은 다음과 같습니다.

E에서 UU에서 E로
--------------------------------------
\xF9\xF9 => U2550 U2550 => \xF9\xF9
\xA2\xA4 => U2550

따라서 \xF9\xF9에 대해 왕복 안전합니다. 하지만 위의 선이 거꾸로 되어 있으면 다음과 같습니다.
일어난다.

E에서 UU에서 E로
--------------------------------------
\xA2\xA4 => U2550 U2550 => \xF9\xF9
(\xF9\xF9 => 이제 U2550을 덮어썼습니다!)

인코딩 패키지는 다음과 함께 제공됩니다. 우클린트, 조잡하지만 확인하기에 충분한 유틸리티입니다.
UCM 파일의 무결성. 이에 대해서는 Encode/bin 디렉토리에서 확인하십시오.

의심스러운 경우 다음을 사용할 수 있습니다. ucmsort, Encode/bin 디렉토리 아래에 또 다른 유틸리티가 있습니다.

즐겨 찾기


· ICU 홈페이지http://www.icu-project.org/>

· ICU 문자 매핑 테이블http://site.icu-project.org/charts/charset>

· ICU:변환 데이터http://www.icu-project.org/userguide/conversion-data.html>

onworks.net 서비스를 사용하여 온라인으로 enc2xs 사용


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad