123456789101112131415161718 |
- #include "wide.h"
- bool CanBeEncoded(TWtringBuf text, ECharset encoding) {
- const size_t LEN = 16;
- const size_t BUFSIZE = LEN * 4;
- char encodeBuf[BUFSIZE];
- wchar16 decodeBuf[BUFSIZE];
- while (!text.empty()) {
- TWtringBuf src = text.NextTokAt(LEN);
- TStringBuf encoded = NDetail::NBaseOps::Recode(src, encodeBuf, encoding);
- TWtringBuf decoded = NDetail::NBaseOps::Recode(encoded, decodeBuf, encoding);
- if (decoded != src)
- return false;
- }
- return true;
- }
|