Хмммм ... используя CGI escape, я обнаружил, что персонаж, приходящий в систему, не тот, кем я ожидал. Это не знак вопроса (% 3F), а знак вопроса (% D5).
C__%D5__M__P__L__%80___T__%80__
C__%3F__M__P__L__%3F___T__%3F__
В конце концов я выдал непечатные символы перед сохранением.
gsub(/[^[:print:]]/, '')
Только после удаления недопустимых символов в моей строке я смог правильно сохранить элемент.
Ни одно из других решений не сработало, отчасти потому, что проблема не была четко понята заранее.