static void FPDFDOC_FDF_GetFieldValue(CPDF_Dictionary* pFieldDict, CFX_WideString& csValue, CFX_ByteString& bsEncoding) { ASSERT(pFieldDict != NULL); CFX_ByteString csBValue = pFieldDict->GetString("V"); int32_t iCount = sizeof(g_fieldEncoding) / sizeof(g_fieldEncoding[0]); int32_t i = 0; for (; i < iCount; ++i) if (bsEncoding == g_fieldEncoding[i].m_name) { break; } if (i < iCount) { CFX_CharMap* pCharMap = CFX_CharMap::GetDefaultMapper(g_fieldEncoding[i].m_codePage); FXSYS_assert(pCharMap != NULL); csValue.ConvertFrom(csBValue, pCharMap); return; } CFX_ByteString csTemp = csBValue.Left(2); if (csTemp == "\xFF\xFE" || csTemp == "\xFE\xFF") { csValue = PDF_DecodeText(csBValue); } else { csValue = CFX_WideString::FromLocal(csBValue); } }
CFX_WideString CFX_WideString::FromLocal(const char* str, FX_STRSIZE len) { CFX_WideString result; result.ConvertFrom(CFX_ByteString(str, len)); return result; }