📄 iconv_util.hpp
字号:
#if (__OS400_TGTVRM__>=510) /* @01a */ #pragma datamodel(P128) /* @01a */#endif /* @01a *//* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//* * $Id: iconv_util.hpp 568078 2007-08-21 11:43:25Z amassari $ */#include "utypes.h"#include <iconv.h>XERCES_CPP_NAMESPACE_BEGINconst char* iconv_getDefaultCodepage(void);// extern "C" int QlgCvtTextDescToDesc (int, int, char *, int, char*, int, int);#define MAX_CONVERTER_NAME_LENGTH 60#define MAX_SUBCHAR_LEN 4#define ERROR_BUFFER_LENGTH 20typedef enum {UNKNOWN = -1, IBM = 0}UCNV_PLATFORM;typedef enum{ UNSUPPORTED_CONVERTER = -1, SBCS = 0, DBCS = 1, MBCS = 2, LATIN_1 = 3, UTF8 = 4, UTF16_BigEndian = 5, UTF16_LittleEndian = 6, EBCDIC_STATEFUL = 7, ISO_2022 = 8, JIS = 9, EUC = 10, GB = 11}UCNV_TYPE;int32_tu_strlen(const UChar *s);/* note sure if needed - think that this is needed in cnv.c */char* u_austrcpy(char *s1, const UChar *ucs2 );/*Defines the struct of a UConverterSharedData the immutable, shared part of *UConverter */typedef struct { uint32_t referenceCounter; /*used to count number of clients */ char name[MAX_CONVERTER_NAME_LENGTH]; /*internal name of the converter */ UCNV_PLATFORM platform; /*platform of the converter (only IBM now */ int32_t codepage; /*codepage # (now IBM-$codepage) */ UCNV_TYPE conversionType; /*conversion type */ int8_t minBytesPerChar; /*Minimum # bytes per char in this codepage */ int8_t maxBytesPerChar; /*Maximum # bytes per char in this codepage */ struct { /*initial values of some members of the mutable part of object */ int8_t subCharLen; unsigned char subChar[MAX_SUBCHAR_LEN]; } defaultConverterValues ; iconv_t toiconv_handle ; /* handle to convert to unicode*/ iconv_t fromiconv_handle; /* handle to convert from unicode*/ }UConverterSharedData;/*Defines a UConverter, the lightweight mutable part the user sees */struct UConverter { int8_t pad; int32_t mode; int8_t subCharLen; /*length of the codepage specific character sequence */ unsigned char subChar[MAX_SUBCHAR_LEN]; /*codepage specific character sequence */ UConverterSharedData *sharedData; /*Pointer to the shared immutable part of the *converter object */ };typedef struct UConverter UConverter;UConverter* createNewConverter(const char *name, UErrorCode *err);/*Initializes the mutable lightweight portion of the object *By copying data from UConverter->sharedData->defaultConverter */static void initializeDataConverter (UConverter * myUConverter);UConverter *createConverter (const char *converterName, UErrorCode * err);XERCES_CPP_NAMESPACE_END#if (__OS400_TGTVRM__>=510) /* @01a */ #pragma datamodel(pop) /* @01a */ #endif /* @01a */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -