//////////////////////////////////////////////////////////////////////////////// | |
// | |
// 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. | |
// | |
//////////////////////////////////////////////////////////////////////////////// | |
/* | |
CharConv.h | |
Author: Sudhakar Pandey <sudhakar@adobe.com> | |
*/ | |
#ifndef __ENCCONV_H__ | |
#define __ENCCONV_H__ | |
#include <string> | |
#include "unicode/ucnv.h" | |
typedef unsigned short U16Char_t; | |
typedef unsigned long LM_UInt32; | |
namespace EncConv | |
{ | |
template<class CharType> | |
static size_t GetNumOfUnits(CharType const* src) | |
{ | |
size_t numOfUnits = 0; | |
while (*src++ != 0) | |
++numOfUnits; | |
return numOfUnits; | |
} | |
const char * getPlatformEncoding(char* enc); | |
const std::string convU16StrToCharStr(const U16Char_t* src, const char* Encoding); | |
U16Char_t* convCharStrToU16Str(const char* src, const char* Encoding); | |
U16Char_t* convSpecialCharsInU16Str( const U16Char_t* src); // caller need not allocate memory for the return value U16Char_t* | |
void releaseU16Str(const U16Char_t* buf); | |
} // namespace | |
#endif |