locale::facet::_S_create_c_locale name not valid
作者:互联网
## 概述
Linux系统下,C++编译的库程序运行时,突然报错:
```
terminate called after throwing an instance of 'std::runtime_error'
what(): locale::facet::_S_create_c_locale name not valid
```
## 原因
该错误是因为程序中使用了GBK字段(或其他系统不支持的字符集数据)导致的。
![](http://www.icode9.com/i/li/?n=4&i=images/blog/202106/09/a6859d0453ef3bdb431b077bfe6a1383.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
## 解决方法
使用locale -a命令查看当前系统支持的字符集,选择一个系统支持的字符集即可。
![](http://www.icode9.com/i/li/?n=4&i=images/blog/202106/09/6739ac8af145166fe1714e8154013c71.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
标签:10,locale,create,字符集,facet,##,images,color 来源: https://blog.51cto.com/weiyuqingcheng/2884414