📄 warutf8.cpp
字号:
#include "StdAfx.h"#include "WarUnicode.h"#include "WarUtf8.h" // class implemented#ifndef WAR_MALLOC_H_INCLUDED# define WAR_MALLOC_H_INCLUDED# include <malloc.h>#endif#ifndef WAR_WCHAR_T_INCLUDED# define WAR_WCHAR_T_INCLUDED# include<wchar.h>#endif#ifndef WAR_EXCEPTION_H# include "WarException.h"#endif/////////////////////////////// PUBLIC /////////////////////////////////////////============================= LIFECYCLE ====================================//============================= OPERATORS ====================================//============================= OPERATIONS ===================================//============================= ACCESS ===================================//============================= INQUIRY ===================================bool WarUtf8::IsUtf8(const war_ccstr_t from){ if (!from || !*from) return false; return war_utf8_valid((const unsigned char *)from, strlen(from));}bool WarUtf8::IsUtf8(const std::string& from){ if (from.empty()) return false; return war_utf8_valid((const unsigned char *)from.c_str(), from.length());}/////////////////////////////// PROTECTED ////////////////////////////////////////////////////////////////// PRIVATE ///////////////////////////////////void WarUtf8::ToUnicode(war_ccstr_t from){ size_t from_len = strlen(from); wchar_t *pwide_buf = (wchar_t *)alloca((from_len +1) * sizeof(wchar_t)); int result = war_utf8_to_ucs4(pwide_buf, from_len, (const unsigned char *)from); if (result <= 0) WarThrow(WarError(WAR_CHRCNV_NOT_UTF8), NULL); pwide_buf[result] = 0; mUtf8Encoded = from; mUnicode = pwide_buf;}void WarUtf8::ToUtf8(const war_cwstr_t from){ size_t from_len = wcslen(from); unsigned char *pnarrow_buf = (unsigned char *)alloca((from_len +1) * 6); size_t result = war_ucs4_to_utf8(from, from_len, pnarrow_buf); pnarrow_buf[result] = 0; mUnicode = from; mUtf8Encoded = (war_ccstr_t)pnarrow_buf;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -