问题描述
- 为什么exception没有宽字符版本?还有很多类库也没有,使用wchar_t不是超级麻烦吗?
-
最近因为字符集的问题,搞来搞去总是有一些字符变成?号,想采用wchar_t替换原来的char,但是发现麻烦非常多,最郁闷的是一些类库的参数要求采用char*,连最平常的exception也不支持wchar_t,望众高手指教啊,用宽字符需要这么麻烦吗??比如那个OTL4,虽然声称支持宽字符,但是其中对象的参数,如连接字符串,SQL都要求传人char字符串,只是查询结果可以输出Unicode编码而已,这不让人郁闷吗?让函数支持一下宽字符版本有多难,为什么连OTL4被广泛采用的库都无视宽字符了,难道大家用它的时候都不用宽字符了,或者用宽字符都是将连接字符串,sql等转换char再用?用宽字符解决乱码不是很好的设想吗?用宽字符调用本来就只支持宽字符的windows api不是很好吗?为什么实现起来那么多麻烦事?真的需要这么麻烦吗??望高手指点迷津,或给个建议!
解决方案
你要分清楚,一些库是标准库,标准库必须安装标准来,不是微软或者哪家说了算的。一些库(windows api, mfc, qt, ...)不是标准库,怎么方便怎么来。
解决方案二:
没有宽字符的,就只能自己在调用前后做一下转换。
时间: 2024-10-26 05:41:14