Movatterモバイル変換


[0]ホーム

URL:


ICU 78.1  78.1
uidna.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4  *******************************************************************************
5  *
6  * Copyright (C) 2003-2014, International Business Machines
7  * Corporation and others. All Rights Reserved.
8  *
9  *******************************************************************************
10  * file name: uidna.h
11  * encoding: UTF-8
12  * tab size: 8 (not used)
13  * indentation:4
14  *
15  * created on: 2003feb1
16  * created by: Ram Viswanadha
17  */
18 
19 #ifndef __UIDNA_H__
20 #define __UIDNA_H__
21 
22 #include "unicode/utypes.h"
23 
24 #if !UCONFIG_NO_IDNA
25 
26 #include <stdbool.h>
27 #include "unicode/parseerr.h"
28 
29 #if U_SHOW_CPLUSPLUS_API
30 #include "unicode/localpointer.h"
31 #endif// U_SHOW_CPLUSPLUS_API
32 
47 /*
48  * IDNA option bit set values.
49  */
50 enum {
64 UIDNA_DEFAULT=0x30,
65 #ifndef U_HIDE_DEPRECATED_API
73 UIDNA_ALLOW_UNASSIGNED=1,
74 #endif/* U_HIDE_DEPRECATED_API */
82 UIDNA_USE_STD3_RULES=2,
90 UIDNA_CHECK_BIDI=4,
98 UIDNA_CHECK_CONTEXTJ=8,
111 UIDNA_NONTRANSITIONAL_TO_ASCII=0x10,
124 UIDNA_NONTRANSITIONAL_TO_UNICODE=0x20,
134 UIDNA_CHECK_CONTEXTO=0x40
135 };
136 
141 structUIDNA;
142 typedefstructUIDNAUIDNA;
163 U_CAPIUIDNA * U_EXPORT2
164 uidna_openUTS46(uint32_t options,UErrorCode *pErrorCode);
165 
171 U_CAPIvoid U_EXPORT2
172 uidna_close(UIDNA *idna);
173 
174 #if U_SHOW_CPLUSPLUS_API
175 
176 U_NAMESPACE_BEGIN
177 
187 U_DEFINE_LOCAL_OPEN_POINTER(LocalUIDNAPointer,UIDNA,uidna_close);
188 
189 U_NAMESPACE_END
190 
191 #endif
192 
203 typedefstructUIDNAInfo {
205  int16_tsize;
211 UBoolisTransitionalDifferent;
212 UBoolreservedB3;
218  uint32_terrors;
219  int32_treservedI2;
220  int32_treservedI3;
221 }UIDNAInfo;
222 
227 #define UIDNA_INFO_INITIALIZER { \
228  (int16_t)sizeof(UIDNAInfo), \
229  false, false, \
230  0, 0, 0 }
231 
255 U_CAPI int32_t U_EXPORT2
256 uidna_labelToASCII(constUIDNA *idna,
257 constUChar *label, int32_t length,
258 UChar *dest, int32_t capacity,
259 UIDNAInfo *pInfo,UErrorCode *pErrorCode);
260 
282 U_CAPI int32_t U_EXPORT2
283 uidna_labelToUnicode(constUIDNA *idna,
284 constUChar *label, int32_t length,
285 UChar *dest, int32_t capacity,
286 UIDNAInfo *pInfo,UErrorCode *pErrorCode);
287 
311 U_CAPI int32_t U_EXPORT2
312 uidna_nameToASCII(constUIDNA *idna,
313 constUChar *name, int32_t length,
314 UChar *dest, int32_t capacity,
315 UIDNAInfo *pInfo,UErrorCode *pErrorCode);
316 
338 U_CAPI int32_t U_EXPORT2
339 uidna_nameToUnicode(constUIDNA *idna,
340 constUChar *name, int32_t length,
341 UChar *dest, int32_t capacity,
342 UIDNAInfo *pInfo,UErrorCode *pErrorCode);
343 
344 /* UTF-8 versions of the processing methods --------------------------------- */
345 
363 U_CAPI int32_t U_EXPORT2
364 uidna_labelToASCII_UTF8(constUIDNA *idna,
365 constchar *label, int32_t length,
366 char *dest, int32_t capacity,
367 UIDNAInfo *pInfo,UErrorCode *pErrorCode);
368 
386 U_CAPI int32_t U_EXPORT2
387 uidna_labelToUnicodeUTF8(constUIDNA *idna,
388 constchar *label, int32_t length,
389 char *dest, int32_t capacity,
390 UIDNAInfo *pInfo,UErrorCode *pErrorCode);
391 
409 U_CAPI int32_t U_EXPORT2
410 uidna_nameToASCII_UTF8(constUIDNA *idna,
411 constchar *name, int32_t length,
412 char *dest, int32_t capacity,
413 UIDNAInfo *pInfo,UErrorCode *pErrorCode);
414 
432 U_CAPI int32_t U_EXPORT2
433 uidna_nameToUnicodeUTF8(constUIDNA *idna,
434 constchar *name, int32_t length,
435 char *dest, int32_t capacity,
436 UIDNAInfo *pInfo,UErrorCode *pErrorCode);
437 
438 /*
439  * IDNA error bit set values.
440  * When a domain name or label fails a processing step or does not meet the
441  * validity criteria, then one or more of these error bits are set.
442  */
443 enum {
448 UIDNA_ERROR_EMPTY_LABEL=1,
455 UIDNA_ERROR_LABEL_TOO_LONG=2,
462 UIDNA_ERROR_DOMAIN_NAME_TOO_LONG=4,
467 UIDNA_ERROR_LEADING_HYPHEN=8,
472 UIDNA_ERROR_TRAILING_HYPHEN=0x10,
477 UIDNA_ERROR_HYPHEN_3_4=0x20,
482 UIDNA_ERROR_LEADING_COMBINING_MARK=0x40,
487 UIDNA_ERROR_DISALLOWED=0x80,
493 UIDNA_ERROR_PUNYCODE=0x100,
499 UIDNA_ERROR_LABEL_HAS_DOT=0x200,
508 UIDNA_ERROR_INVALID_ACE_LABEL=0x400,
513 UIDNA_ERROR_BIDI=0x800,
518 UIDNA_ERROR_CONTEXTJ=0x1000,
525 UIDNA_ERROR_CONTEXTO_PUNCTUATION=0x2000,
531 UIDNA_ERROR_CONTEXTO_DIGITS=0x4000
532 };
533 
534 #ifndef U_HIDE_DEPRECATED_API
535 
536 /* IDNA2003 API ------------------------------------------------------------- */
537 
597 U_DEPRECATED int32_t U_EXPORT2
598 uidna_toASCII(constUChar* src, int32_t srcLength,
599 UChar* dest, int32_t destCapacity,
600  int32_t options,
601 UParseError* parseError,
602 UErrorCode* status);
603 
604 
645 U_DEPRECATED int32_t U_EXPORT2
646 uidna_toUnicode(constUChar* src, int32_t srcLength,
647 UChar* dest, int32_t destCapacity,
648  int32_t options,
649 UParseError* parseError,
650 UErrorCode* status);
651 
652 
696 U_DEPRECATED int32_t U_EXPORT2
697 uidna_IDNToASCII(constUChar* src, int32_t srcLength,
698 UChar* dest, int32_t destCapacity,
699  int32_t options,
700 UParseError* parseError,
701 UErrorCode* status);
702 
743 U_DEPRECATED int32_t U_EXPORT2
744 uidna_IDNToUnicode(constUChar* src, int32_t srcLength,
745 UChar* dest, int32_t destCapacity,
746  int32_t options,
747 UParseError* parseError,
748 UErrorCode* status);
749 
784 U_DEPRECATED int32_t U_EXPORT2
785 uidna_compare(constUChar *s1, int32_t length1,
786 constUChar *s2, int32_t length2,
787  int32_t options,
788 UErrorCode* status);
789 
790 #endif/* U_HIDE_DEPRECATED_API */
791 
792 #endif/* #if !UCONFIG_NO_IDNA */
793 
794 #endif
LocalUIDNAPointer
"Smart pointer" class, closes a UIDNA via uidna_close().
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition:localpointer.h:548
parseerr.h
C API: Parse Error Information.
UIDNAInfo
Output container for IDNA processing errors.
Definition:uidna.h:203
UIDNAInfo::size
int16_t size
sizeof(UIDNAInfo)
Definition:uidna.h:205
UIDNAInfo::reservedI3
int32_t reservedI3
Reserved field, do not use.
Definition:uidna.h:220
UIDNAInfo::errors
uint32_t errors
Bit set indicating IDNA processing errors.
Definition:uidna.h:218
UIDNAInfo::isTransitionalDifferent
UBool isTransitionalDifferent
Set to true if transitional and nontransitional processing produce different results.
Definition:uidna.h:211
UIDNAInfo::reservedB3
UBool reservedB3
Reserved field, do not use.
Definition:uidna.h:212
UIDNAInfo::reservedI2
int32_t reservedI2
Reserved field, do not use.
Definition:uidna.h:219
UParseError
A UParseError struct is used to returned detailed information about parsing errors.
Definition:parseerr.h:58
UIDNA_ERROR_CONTEXTO_DIGITS
@ UIDNA_ERROR_CONTEXTO_DIGITS
A label does not meet the IDNA CONTEXTO requirements for digits.
Definition:uidna.h:531
UIDNA_ERROR_TRAILING_HYPHEN
@ UIDNA_ERROR_TRAILING_HYPHEN
A label ends with a hyphen-minus ('-').
Definition:uidna.h:472
UIDNA_ERROR_LEADING_COMBINING_MARK
@ UIDNA_ERROR_LEADING_COMBINING_MARK
A label starts with a combining mark.
Definition:uidna.h:482
UIDNA_ERROR_LABEL_TOO_LONG
@ UIDNA_ERROR_LABEL_TOO_LONG
A domain name label is longer than 63 bytes.
Definition:uidna.h:455
UIDNA_ERROR_CONTEXTJ
@ UIDNA_ERROR_CONTEXTJ
A label does not meet the IDNA CONTEXTJ requirements.
Definition:uidna.h:518
UIDNA_ERROR_DISALLOWED
@ UIDNA_ERROR_DISALLOWED
A label or domain name contains disallowed characters.
Definition:uidna.h:487
UIDNA_ERROR_LABEL_HAS_DOT
@ UIDNA_ERROR_LABEL_HAS_DOT
A label contains a dot=full stop.
Definition:uidna.h:499
UIDNA_ERROR_BIDI
@ UIDNA_ERROR_BIDI
A label does not meet the IDNA BiDi requirements (for right-to-left characters).
Definition:uidna.h:513
UIDNA_ERROR_HYPHEN_3_4
@ UIDNA_ERROR_HYPHEN_3_4
A label contains hyphen-minus ('-') in the third and fourth positions.
Definition:uidna.h:477
UIDNA_ERROR_PUNYCODE
@ UIDNA_ERROR_PUNYCODE
A label starts with "xn--" but does not contain valid Punycode.
Definition:uidna.h:493
UIDNA_ERROR_DOMAIN_NAME_TOO_LONG
@ UIDNA_ERROR_DOMAIN_NAME_TOO_LONG
A domain name is longer than 255 bytes in its storage form.
Definition:uidna.h:462
UIDNA_ERROR_LEADING_HYPHEN
@ UIDNA_ERROR_LEADING_HYPHEN
A label starts with a hyphen-minus ('-').
Definition:uidna.h:467
UIDNA_ERROR_CONTEXTO_PUNCTUATION
@ UIDNA_ERROR_CONTEXTO_PUNCTUATION
A label does not meet the IDNA CONTEXTO requirements for punctuation characters.
Definition:uidna.h:525
UIDNA_ERROR_EMPTY_LABEL
@ UIDNA_ERROR_EMPTY_LABEL
A non-final domain name label (or the whole domain name) is empty.
Definition:uidna.h:448
UIDNA_ERROR_INVALID_ACE_LABEL
@ UIDNA_ERROR_INVALID_ACE_LABEL
An ACE label does not contain a valid label string.
Definition:uidna.h:508
uidna_openUTS46
U_CAPI UIDNA * uidna_openUTS46(uint32_t options, UErrorCode *pErrorCode)
Returns a UIDNA instance which implements UTS #46.
UIDNA
struct UIDNA UIDNA
C typedef for struct UIDNA.
Definition:uidna.h:142
uidna_IDNToASCII
int32_t uidna_IDNToASCII(const UChar *src, int32_t srcLength, UChar *dest, int32_t destCapacity, int32_t options, UParseError *parseError, UErrorCode *status)
IDNA2003: Convenience function that implements the IDNToASCII operation as defined in the IDNA RFC.
UIDNA_CHECK_CONTEXTJ
@ UIDNA_CHECK_CONTEXTJ
IDNA option to check for whether the input conforms to the CONTEXTJ rules.
Definition:uidna.h:98
UIDNA_NONTRANSITIONAL_TO_ASCII
@ UIDNA_NONTRANSITIONAL_TO_ASCII
IDNA option for nontransitional processing in ToASCII().
Definition:uidna.h:111
UIDNA_ALLOW_UNASSIGNED
@ UIDNA_ALLOW_UNASSIGNED
Option to allow unassigned code points in domain names and labels.
Definition:uidna.h:73
UIDNA_CHECK_CONTEXTO
@ UIDNA_CHECK_CONTEXTO
IDNA option to check for whether the input conforms to the CONTEXTO rules.
Definition:uidna.h:134
UIDNA_CHECK_BIDI
@ UIDNA_CHECK_BIDI
IDNA option to check for whether the input conforms to the BiDi rules.
Definition:uidna.h:90
UIDNA_USE_STD3_RULES
@ UIDNA_USE_STD3_RULES
Option to check whether the input conforms to the STD3 ASCII rules, for example the restriction of la...
Definition:uidna.h:82
UIDNA_DEFAULT
@ UIDNA_DEFAULT
Default options value: UTS #46 nontransitional processing.
Definition:uidna.h:64
UIDNA_NONTRANSITIONAL_TO_UNICODE
@ UIDNA_NONTRANSITIONAL_TO_UNICODE
IDNA option for nontransitional processing in ToUnicode().
Definition:uidna.h:124
uidna_close
U_CAPI void uidna_close(UIDNA *idna)
Closes a UIDNA instance.
uidna_nameToUnicode
U_CAPI int32_t uidna_nameToUnicode(const UIDNA *idna, const UChar *name, int32_t length, UChar *dest, int32_t capacity, UIDNAInfo *pInfo, UErrorCode *pErrorCode)
Converts a whole domain name into its Unicode form for human-readable display.
uidna_compare
int32_t uidna_compare(const UChar *s1, int32_t length1, const UChar *s2, int32_t length2, int32_t options, UErrorCode *status)
IDNA2003: Compare two IDN strings for equivalence.
UIDNAInfo
struct UIDNAInfo UIDNAInfo
Output container for IDNA processing errors.
uidna_labelToASCII
U_CAPI int32_t uidna_labelToASCII(const UIDNA *idna, const UChar *label, int32_t length, UChar *dest, int32_t capacity, UIDNAInfo *pInfo, UErrorCode *pErrorCode)
Converts a single domain name label into its ASCII form for DNS lookup.
uidna_nameToASCII_UTF8
U_CAPI int32_t uidna_nameToASCII_UTF8(const UIDNA *idna, const char *name, int32_t length, char *dest, int32_t capacity, UIDNAInfo *pInfo, UErrorCode *pErrorCode)
Converts a whole domain name into its ASCII form for DNS lookup.
uidna_toASCII
int32_t uidna_toASCII(const UChar *src, int32_t srcLength, UChar *dest, int32_t destCapacity, int32_t options, UParseError *parseError, UErrorCode *status)
IDNA2003: This function implements the ToASCII operation as defined in the IDNA RFC.
uidna_nameToASCII
U_CAPI int32_t uidna_nameToASCII(const UIDNA *idna, const UChar *name, int32_t length, UChar *dest, int32_t capacity, UIDNAInfo *pInfo, UErrorCode *pErrorCode)
Converts a whole domain name into its ASCII form for DNS lookup.
uidna_labelToUnicodeUTF8
U_CAPI int32_t uidna_labelToUnicodeUTF8(const UIDNA *idna, const char *label, int32_t length, char *dest, int32_t capacity, UIDNAInfo *pInfo, UErrorCode *pErrorCode)
Converts a single domain name label into its Unicode form for human-readable display.
uidna_IDNToUnicode
int32_t uidna_IDNToUnicode(const UChar *src, int32_t srcLength, UChar *dest, int32_t destCapacity, int32_t options, UParseError *parseError, UErrorCode *status)
IDNA2003: Convenience function that implements the IDNToUnicode operation as defined in the IDNA RFC.
uidna_labelToASCII_UTF8
U_CAPI int32_t uidna_labelToASCII_UTF8(const UIDNA *idna, const char *label, int32_t length, char *dest, int32_t capacity, UIDNAInfo *pInfo, UErrorCode *pErrorCode)
Converts a single domain name label into its ASCII form for DNS lookup.
uidna_labelToUnicode
U_CAPI int32_t uidna_labelToUnicode(const UIDNA *idna, const UChar *label, int32_t length, UChar *dest, int32_t capacity, UIDNAInfo *pInfo, UErrorCode *pErrorCode)
Converts a single domain name label into its Unicode form for human-readable display.
uidna_nameToUnicodeUTF8
U_CAPI int32_t uidna_nameToUnicodeUTF8(const UIDNA *idna, const char *name, int32_t length, char *dest, int32_t capacity, UIDNAInfo *pInfo, UErrorCode *pErrorCode)
Converts a whole domain name into its Unicode form for human-readable display.
uidna_toUnicode
int32_t uidna_toUnicode(const UChar *src, int32_t srcLength, UChar *dest, int32_t destCapacity, int32_t options, UParseError *parseError, UErrorCode *status)
IDNA2003: This function implements the ToUnicode operation as defined in the IDNA RFC.
U_DEPRECATED
#define U_DEPRECATED
This is used to declare a function as a deprecated public ICU C API
Definition:umachine.h:116
UBool
int8_t UBool
The ICU boolean type, a signed-byte integer.
Definition:umachine.h:269
U_CAPI
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition:umachine.h:110
UChar
char16_t UChar
The base type for UTF-16 code units and pointers.
Definition:umachine.h:400
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition:utypes.h:509

Generated by doxygen 1.9.1
[8]ページ先頭

©2009-2025 Movatter.jp