下面是一行PHP代码。

//将utf-8转成gb2312,ignore的意思是忽略转换时的错误
iconv( 'UTF-8', 'GB2312//IGNORE', '姓名' ),

GB2312 共收录有 7445 个字符,其中简化汉字 6763 个,字母和符号 682 个。所以有些字显示不了。

解决方法:

将GB2312换成GBK即可。

//GBK不会发生转换错误,所以不用加ignore
iconv( 'UTF-8', 'GBK', '姓名' ),

GBK编码,是对GB2312编码的扩展,因此完全兼容GB2312-80标准。GBK编码依然采用双字节编码方案,其编码范围:8140-FEFE,剔除xx7F码位,共23940个码位。共收录汉字和图形符号21886个,其中汉字(包括部首和构件)21003个,图形符号883个。GBK编码支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字。GBK编码方案于1995年12月15日正式发布,这一版的GBK规范为1.0版。


参考:
PHP iconv()字符编码转换的问题 - 叶显明的专栏