Добро пожаловать в радости AnsiStrings, закодированные с использованием кодовых страниц. Вы не должны использовать AnsiStrings вообще, и вы это знаете, но вы говорите, не объясняя этого, что вы не можете использовать элементы управления Unicode. это кажется странным для меня. Вы должны использовать либо:
(a) Версия Delphi для Unicode (2009,2010, XE), где String = UnicodeString.
(b) Если это не так, по крайней мере, используйте надлежащие элементы управления Unicode, такие как элементы управления TNT, и внутренне используйте типы WideString, где вам нужно хранить акцентированные или международные символы.
Ваша версия Delphi имеет String = AnsiString, и вы полагаетесь на локаль, на которую настроена ваша система (как вы говорите в своем вопросе), чтобы выбрать представления кодовых страниц с акцентированными символами, что является проблематичной схемой. Если вы действительно не можете перейти от Delphi 7, по крайней мере, начать использовать WideStrings и элементы управления Unicode TNT, но я должен сказать, что усилия затрачены, вам лучше получить Delphi XE и просто портировать на Unicode.
Ваш вопрос спрашивает "как я могу знать, могут ли они храниться в порядке или нет?" Вы можете кодировать и декодировать, используя вашу кодовую страницу, и проверить, заменено ли что-либо символом «?». Например, функция Windows WideCharToMultiByte ведет себя так. MBCS - это мир боли, и делать его не стоит, но вы спросили, как вы можете узнать, где выпадает слово из-под вас, чтобы API помог вам понять выбранное вами правило кодирования.