当前位置: 技术问答>linux和unix
linux c使用mmap映射unicode的遇到的问题
来源: 互联网 发布时间:2017-05-25
本文导语: 我在映射内存时使用的是 m_pData = mmap(0,m_uSize,PROT_READ,MAP_PRIVATE,m_iFileFd,0) 其中m_pData是void*型,m_uSize是获取的文件大小,m_iFileFd是 用open方式打开的Unicode文件。 函数中使用了setlocale(LC_CTYPE,"utf-8le") 最后使用printf打印m_...
我在映射内存时使用的是
m_pData = mmap(0,m_uSize,PROT_READ,MAP_PRIVATE,m_iFileFd,0)
其中m_pData是void*型,m_uSize是获取的文件大小,m_iFileFd是 用open方式打开的Unicode文件。
函数中使用了setlocale(LC_CTYPE,"utf-8le")
最后使用printf打印m_pData就是几个乱码。文件本身有33M呢。
哪位大侠对此比较了解的,能指导一下吗
m_pData = mmap(0,m_uSize,PROT_READ,MAP_PRIVATE,m_iFileFd,0)
其中m_pData是void*型,m_uSize是获取的文件大小,m_iFileFd是 用open方式打开的Unicode文件。
函数中使用了setlocale(LC_CTYPE,"utf-8le")
最后使用printf打印m_pData就是几个乱码。文件本身有33M呢。
哪位大侠对此比较了解的,能指导一下吗
|
UNICODE,UTF-8只是字符集编码,和具体打开方法没关系的。如果要想显示正常,则转换为本地字符集编码即可,如果只是当做二进制数据,那么没什么区别。