コード例 #1
0
void ZLEncodingCollection::init() {
	if (mySets.empty()) {
		ZLEncodingCollectionReader(*this).readDocument(ZLFile(
			encodingDescriptionPath() + ZLibrary::FileNameDelimiter + "Encodings.xml"
		));
	}
}
コード例 #2
0
std::vector<std::string> &ZLEncodingConverter::knownEncodings() {
    if (ourKnownEncodings.empty()) {
        std::vector<std::string> candidates;
        EncodingListReader(candidates, ourEncodingsByCode).readDocument(encodingDescriptionPath() + "/Encodings.list");
        for (std::vector<std::string>::const_iterator it = candidates.begin(); it != candidates.end(); ++it) {
            iconv_t converter = iconv_open("utf-8", it->c_str());
            if (converter != (iconv_t)-1) {
                iconv_close(converter);
                ourKnownEncodings.push_back(*it);
            } else if (ZLFile(encodingDescriptionPath() + '/' + *it).exists()) {
                ourKnownEncodings.push_back(*it);
            }
        }
        if (ourKnownEncodings.empty()) {
            ourKnownEncodings.push_back("US-ASCII");
            ourKnownEncodings.push_back("UTF-8");
        }
        std::sort(ourKnownEncodings.begin(), ourKnownEncodings.end());
    }
    return ourKnownEncodings;
}
コード例 #3
0
void ZLEncodingCollection::init() {
	if (mySets.empty()) {
		const std::string prefix = encodingDescriptionPath() + ZLibrary::FileNameDelimiter;
		ZLEncodingCollectionReader(*this).readDocument(prefix + "Encodings.xml");
	}
}