oracle插入中文之后查询输出乱码
一、建表进行测试
create table test(a varchar2(32)); insert into test values('你好'); commit; select * from test;
插入后查询表出现乱码,这是因为未设置NLS_LANG变量,这个变量告诉数据库服务端,当前客户端的字符集是什么,需要数据库在输出时决定要不要转码。NLS_LANG由language、territory、characterset三部分组成。
select * from v$nls_valid_values where parameter ='LANGUAGE'; //查看language的值范围 select * from v$nls_valid_values where parameter ='TERRITORY'; //查看territory范围 select * from v$nls_valid_values where parameter ='CHARACTERSET'; //characterset范围
调整NLS_LANG,修改环境变量export NLS_LANG=AMERICAN_AMERICA.UTF8
export NLS_LANG=AMERICAN_AMERICA.UTF8 sqlplus hr/hr123; insert into test values('你好'); //再次插入中文数据 select * from test; //查询
AL32UTF8是通用字符集,ZHS16GBK是数据库标准字符集,输入生僻字后会出现乱码。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下