我有一个 MFC 应用程序,其中字符集为“未设置”。在具有多字节字符集代码页的操作系统上运行此应用程序有哪些风险?
问问题
113 次
2 回答
1
“字符集:未设置”选项既不定义_MBCS
也不定义_UNICODE
。这意味着您正在使用 *A 系列函数。那些将返回 MBCS 字符串,即使_MBCS
没有定义。
如果_MBCS
不影响从 *A 函数返回的字符串,那么它会做什么?它将一些<tchar.h>
tcs*
函数映射到它们的mbs*
版本,而不是str*
orwcs*
变体。例如 without _MBCS
,_tcsrev
映射到strrev
, not _mbsrev
。
因此,您可能无法反转从操作系统接收到的多字节字符串,或以其他方式编辑它们。
于 2011-04-29T13:08:30.887 回答
0
风险是:
1) 如果您使用非英语文本,并且用户输入了俄语,一些未映射到 MBCS 或需要字符集层的俄语字符将被检索为“?”
2)您需要通知客户该应用程序。仅接受英文且不保证应用程序在输入非英文字符时会正确接受或检索非英文文本。
3) 任何带有外语字符的文本都可能导致不希望的或不希望的重音和变音符号转换为其他内容。
于 2014-06-28T16:14:24.030 回答