return buf;
}
-void Codec::Encoder::error(unichar ch, string &buf, const string &msg)
-{
- switch(err_mode)
- {
- case TRANSLITERATE:
- transliterate(ch, buf);
- case IGNORE_ERRORS:
- break;
- default:
- throw CodecError(msg);
- }
-}
void Codec::Decoder::decode(const string &str, ustring &buf)
return buf;
}
-unichar Codec::Decoder::error(const string &msg)
-{
- switch(err_mode)
- {
- case TRANSLITERATE:
- return 0xFFFD;
- case IGNORE_ERRORS:
- return -1;
- default:
- throw CodecError(msg);
- }
-}
-
Codec *create_codec(const string &n)
{
string name;
if(name=="jisx0208") return new JisX0208;
if(name=="utf8") return new Utf8;
if(name=="windows1252" || name=="cp1252") return new Windows1252;
- throw InvalidParameterValue("Unknown string codec");
+ throw invalid_argument("unknown string codec");
}
Codec *detect_codec(const string &str)