Документация SAS классифицирует LOWCASE как «I18N уровень 2», что означает, что ее можно использовать для данных с одним байтом, двойным байтом или несколькими байтами. Поэтому я ожидал бы, что это будет правильно строчить строку UTF8 (если мой сеанс ENCODING - UTF8), даже если он содержит многобайтовые последовательности символов, и он не повредил бы его, обращаясь к каждому байту индивидуально.В SAS, в чем разница между LOWCASE и KLOWCASE?
Учитывая, что такое KLOWCASE? Другие функции «K» обеспечивают эквиваленты для обычных строковых функций, которые не работают с многобайтовыми строками, такими как KSUBSTR, KREVERSE и продолжают работать. KUPCASE и KLOWCASE кажутся разными в том смысле, что они, похоже, ничем не отличаются от своих коллег, не являющихся «К». Возможно, классификация LOWCASE как I18N уровня 2 неверна, и LOWCASE полностью не знает многобайтовых последовательностей?
Да, это классифицируется как I18N уровень 2. Это была отправная точка моего вопроса. Итак, вы считаете, что LOWCASE не работает с DBCS, тогда они представили KLOWCASE, который был полностью осведомлен о DBCS, затем они изменили поведение LOWCASE на многобайтовых кодировках, чтобы сделать его DBCS осведомленным (тем самым фактически сделав его обратным несовместимым), тем самым делая KLOWCASE устарела? Это, безусловно, правдоподобное объяснение. –
Исправить. SAS полна таких вещей. Если вы хотите получить более окончательный ответ, я отправлю вопрос на SAS-L (SAS listserv); там больше людей, особенно больше тех, кто имеет опыт в двадцать или тридцать лет и более и будет помнить более старые версии. (Кроме того, некоторые сотрудники SAS читают список и могут прослушивать.) – Joe