本文整理汇总了C++中icu::UnicodeString::getBuffer方法的典型用法代码示例。如果您正苦于以下问题:C++ UnicodeString::getBuffer方法的具体用法?C++ UnicodeString::getBuffer怎么用?C++ UnicodeString::getBuffer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类icu::UnicodeString
的用法示例。
在下文中一共展示了UnicodeString::getBuffer方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
U_CAPI int32_t U_EXPORT2
uspoof_areConfusableUnicodeString(const USpoofChecker *sc,
const icu::UnicodeString &s1,
const icu::UnicodeString &s2,
UErrorCode *status) {
const UChar *u1 = s1.getBuffer();
int32_t length1 = s1.length();
const UChar *u2 = s2.getBuffer();
int32_t length2 = s2.length();
int32_t results = uspoof_areConfusable(sc, u1, length1, u2, length2, status);
return results;
}
示例2: ConvertString
void FStringConverter::ConvertString(const TCHAR* Source, const int32 SourceStartIndex, const int32 SourceLen, icu::UnicodeString& Destination, const bool ShouldNullTerminate)
{
if (SourceLen > 0)
{
UErrorCode ICUStatus = U_ZERO_ERROR;
ucnv_reset(ICUConverter);
// Get the internal buffer of the string, we're going to use it as scratch space
const int32_t DestinationCapacityUChars = SourceLen * 2;
UChar* InternalStringBuffer = Destination.getBuffer(DestinationCapacityUChars);
// Perform the conversion into the string buffer
const int32_t SourceSizeBytes = SourceLen * sizeof(TCHAR);
const int32_t DestinationLength = ucnv_toUChars(ICUConverter, InternalStringBuffer, DestinationCapacityUChars, reinterpret_cast<const char*>(Source + SourceStartIndex), SourceSizeBytes, &ICUStatus);
// Optionally null terminate the string
if (ShouldNullTerminate)
{
InternalStringBuffer[DestinationLength] = 0;
}
// Size it back down to the correct size and release our lock on the string buffer
Destination.releaseBuffer(DestinationLength);
check(U_SUCCESS(ICUStatus));
}
else
{
Destination.remove();
}
}
示例3: WriteUnicodeUnitexFile
/**
* Write an Unitex file content (to system filesystem or filespace)
* it write from two buffer (prefix and suffix). This is useful for writing both header and footer (or BOM and text...)
*/
UNITEX_FUNC int UNITEX_CALL WriteUnicodeUnitexFile(const char*filename, icu::UnicodeString const& uString)
{
UChar uBom = 0xfeff;
const UChar * uBuffer = uString.getBuffer();
int32_t uLength = uString.length();
bool result = WriteUnitexFile(filename, &uBom, sizeof(UChar), uBuffer, uLength * sizeof(UChar)) == 0;
return result;
}
示例4: ustring_from_char
bool ustring_from_char(icu::UnicodeString& ret,
const String& str,
UErrorCode &error) {
int32_t capacity = str.size() + 1;
UChar *utf16 = ret.getBuffer(capacity);
int32_t utf16_len = 0;
error = U_ZERO_ERROR;
u_strFromUTF8WithSub(utf16, ret.getCapacity(), &utf16_len,
str.c_str(), str.size(),
U_SENTINEL /* no substitution */,
nullptr, &error);
ret.releaseBuffer(utf16_len);
if (U_FAILURE(error)) {
ret.setToBogus();
return false;
}
return true;
}
示例5: printf
static void
printLine(UChar32 start, UChar32 end, Status status, const icu::UnicodeString &mapping) {
if(start==end) {
printf("%04lX ", (long)start);
} else {
printf("%04lX..%04lX ", (long)start, (long)end);
}
printf("; %s", statusNames[status]);
if(status==MAPPED || status==DEVIATION || !mapping.isEmpty()) {
printf(" ;");
const UChar *buffer=mapping.getBuffer();
int32_t length=mapping.length();
int32_t i=0;
UChar32 c;
while(i<length) {
U16_NEXT(buffer, i, length, c);
printf(" %04lX", (long)c);
}
}
puts("");
}
示例6: U_SUCCESS
static int
toIDNA2003(const UStringPrepProfile *prep, UChar32 c, icu::UnicodeString &destString) {
UChar src[2];
int32_t srcLength=0;
U16_APPEND_UNSAFE(src, srcLength, c);
UChar *dest;
int32_t destLength;
dest=destString.getBuffer(32);
if(dest==NULL) {
return FALSE;
}
UErrorCode errorCode=U_ZERO_ERROR;
destLength=usprep_prepare(prep, src, srcLength,
dest, destString.getCapacity(),
USPREP_DEFAULT, NULL, &errorCode);
destString.releaseBuffer(destLength);
if(errorCode==U_STRINGPREP_PROHIBITED_ERROR) {
return -1;
} else {
// Returns FALSE=0 for U_STRINGPREP_UNASSIGNED_ERROR and processing errors,
// TRUE=1 if c is valid or mapped.
return U_SUCCESS(errorCode);
}
}
示例7: operator
jobject operator()(icu::UnicodeString const& value) const {
return env->NewString(value.getBuffer(), value.length());
}
示例8: QString
QString
EnabledLocalesModel::unicodeStringToQString( const icu::UnicodeString& sourceStr )
{
return QString( reinterpret_cast<const QChar*>( sourceStr.getBuffer() ),
sourceStr.length() );
}