小编pra*_*988的帖子

sql中的西欧字符到土耳其语

我遇到了严重的字符编码问题.给出一些背景知识:

  1. 我有土耳其语的商业用户,他们用土耳其语在Unix屏幕上输入一些数据.
  2. 我的数据库NLS参数设置为AMERICAN,WE8ISO8859P1而Unix NLS_LANGAMERICAN_AMERICA.WE8ISO8859P1.
  3. 土耳其企业能够在UNIX屏幕和TOAD上看到所有土耳其人物,而我却不是.我只能在西欧字符集中看到它们.

在业务结束时:ÖZER ?N?AAT TAAHHÜT VE
在我们结束时:ÖZER ÝNÞAAT TAAHHÜT VE

如果您注意到土耳其字符?并且?正在转换为ISO 8859-1字符集.但是,所有设置(db和unix中的NLS参数)在两端都是相同的ISO8859-1(西欧)

通过一些研究,我可以理解 - 土耳其机器可以通过实时转换显示土耳其数据(DB NLS设置被本地NLS设置覆盖).

现在,我有一个在我的db中运行的接口 - 有一些PL/SQL脚本(通过shell脚本运行)从数据库中提取一些数据并将它们假脱机到unix路径上的.csv文件.然后通过MFT(托管文件传输)将.csv文件传输到外部系统.

问题是 - Exract永远不会有任何土耳其人的性格.每个土耳其人角色都会被转换成西欧角色,并且像这样对待外部系统,这被视为数据转换/丢失的情况,我的生意真的很不开心.

谁能告诉我 - 我怎么能保留所有土耳其人物?

PS:外部系统的字符集可以设置为ISP8859-9 charcterset.

提前谢谢了.

sql unix oracle shell plsql

2
推荐指数
1
解决办法
4356
查看次数

标签 统计

oracle ×1

plsql ×1

shell ×1

sql ×1

unix ×1