亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 6901 | 回復(fù): 14
打印 上一主題 下一主題

[Web] apache+perl提取oracle中文數(shù)據(jù)亂碼 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2008-05-28 17:28 |只看該作者 |倒序?yàn)g覽
10可用積分
請(qǐng)大家?guī)蛶兔Π ?br /> 首先說(shuō)明一下情況:
數(shù)據(jù)庫(kù)oracle 10r2, 裝在另一臺(tái)機(jī)器上,系統(tǒng)為2003上,字附編碼為:NLS_LANG='AMERICAN_AMERICA.ZHS16GBK';

apache測(cè)式服務(wù)器在我自己的機(jī)器上:系統(tǒng)為xp, apache版本2.2.4

遇到的問(wèn)題是:如果我在本機(jī)寫的perl代碼,加上環(huán)境變量
$ENV{NLS_LANG} = 'AMERICAN_AMERICA.ZHS16GBK';
后從數(shù)據(jù)庫(kù)里提取的中文數(shù)據(jù)能正常顯示,
但是一旦把這段代碼放到web頁(yè)面中,提取的數(shù)據(jù)就變成亂碼了。(注意,我確認(rèn)過(guò)了,是提取出來(lái)的就是亂碼,而不是顯示時(shí)才亂碼的)

我的頁(yè)面字符編碼是
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
另外: apache 的http.conf 已加上     AddDefaultCharset   GB2312   。

請(qǐng)有處理過(guò)此類情況的高手幫幫忙,是我的apache設(shè)的有問(wèn)題,還是別的啊。。。。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2008-05-28 18:27 |只看該作者
試過(guò)字符轉(zhuǎn)換嗎?導(dǎo)出后轉(zhuǎn)換一下試試吧。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2008-05-28 18:53 |只看該作者
原帖由 freedom_L 于 2008-5-28 18:27 發(fā)表
試過(guò)字符轉(zhuǎn)換嗎?導(dǎo)出后轉(zhuǎn)換一下試試吧。

嗯,試過(guò)了,用utf8和GB2312都試過(guò)了,但還是不行。

這個(gè)問(wèn)題有點(diǎn)很有意思。就是我的APACHE是架在我自己機(jī)器上的,但我直接寫個(gè)角本在角本里設(shè)置環(huán)境變量NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
在cmd窗口運(yùn)行,數(shù)據(jù)提出來(lái)都是正常的,顯示也正常,
但同樣的腳本放在web上的時(shí)候,提出來(lái)的就是亂碼,顯示不用說(shuō)還是亂碼了。。

所以我覺得是APACHE的編碼環(huán)境和我本機(jī)的SHELL編碼環(huán)境的區(qū)別造成的。有辦法讓APACHE的環(huán)境變得和本機(jī)一樣嗎?
莫非 AddDefaultCharset   GB2312 這句話加的編碼不對(duì)?windows環(huán)境不都是gbk系統(tǒng)的編碼嗎?

論壇徽章:
1
IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-09-29 06:20:00
4 [報(bào)告]
發(fā)表于 2008-05-29 09:26 |只看該作者
'AMERICAN_AMERICA.ZHS16GBK'和gb2312是不一樣的
在web中指定了gb2312,可能是全局上仍然是gb2312的編碼方式去數(shù)據(jù)庫(kù)提取編碼是'AMERICAN_AMERICA.ZHS16GBK'的字符串
oracle的編碼方式可以改一下,應(yīng)該不是這個(gè)'AMERICAN_AMERICA.ZHS16GBK'

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2008-05-29 15:26 |只看該作者
你的WEB是Linux吧?你把你的測(cè)試平臺(tái)與LINUX平臺(tái)全統(tǒng)一成UTF-8試過(guò)嗎?

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2008-05-30 14:04 |只看該作者
原帖由 freedom_L 于 2008-5-29 15:26 發(fā)表
你的WEB是Linux吧?你把你的測(cè)試平臺(tái)與LINUX平臺(tái)全統(tǒng)一成UTF-8試過(guò)嗎?

當(dāng)初也考慮到linux可能語(yǔ)言問(wèn)題會(huì)更麻煩,所以,就把APACHE和ORACLE都裝在同一臺(tái)機(jī)器上了。系統(tǒng)是2003

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2008-06-02 17:38 |只看該作者

回復(fù) #6 smonkey0 的帖子

自殺的心都有了。。我把字符試了個(gè)遍。把數(shù)據(jù)庫(kù)都重裝換成utf8 了。還是不行。。。。神啊。。收了我吧。。。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2008-06-04 09:30 |只看該作者

回復(fù) #7 smonkey0 的帖子

我找到原因了,但不知道怎么辦了。
ORALCE 里有個(gè)關(guān)于時(shí)間的格式的環(huán)境變量:$ENV{NLS_DATE_FORMAT}   =   'YYYY-MM-DD'我不設(shè)的話,WEB上取出來(lái)是:29-MAY-08   英文的 'DD-MM-YY';
但就算我加了在代碼里加上:$ENV{NLS_DATE_FORMAT}   =   'YYYY-MM-DD'取出來(lái)還是  英文的 'DD-MM-YY' ,  好像mod_perl(或者是APACHE) 沒有把這個(gè)信息輸?shù)綌?shù)據(jù)庫(kù)服務(wù)器一樣。
所以說(shuō)這個(gè)程序最關(guān)鍵的環(huán)境變量
$ENV{NLS_LANG}='SIMPLIFIED CHINESE_CHINA.UTF8'
肯定是沒有湊效了。。

我分別試過(guò)幾種方法:
1.在代碼里加上  $ENV{NLS_LANG}=。。。 之類的方法,--->失敗
2.在HTTP.CONF 里加上 SetEnv NLS_LANG CHINESE_CHINA.UTF   SetEnv NLS_DATE_FORMAT YYYY-MM-DD  --->失敗
3.在HTTP.CONF 里加上
PerlSetEnv NLS_LANG CHINESE_CHINA.UTF8
PerlSetEnv NLS_DATE_FORMAT YYYY-MM-DD
PerlPassEnv NLS_LANG
PerlPassEnv NLS_DATE_FORMAT
結(jié)果導(dǎo)致apache 運(yùn)行出錯(cuò)。原因網(wǎng)上據(jù)說(shuō)是apache2對(duì)mod_perl 的支持問(wèn)題。。

現(xiàn)在好迷茫,如果實(shí)在不行,打算著再加個(gè)php試試了。。。

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2008-06-06 10:24 |只看該作者
windows?
在我的電腦上右鍵
屬性=》高級(jí)=》環(huán)境變量

論壇徽章:
1
IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-09-29 06:20:00
10 [報(bào)告]
發(fā)表于 2008-06-06 10:54 |只看該作者
打開oracle的日志活動(dòng),用perl訪問(wèn)oracle看看日志中oracle接受的sql語(yǔ)句和用http訪問(wèn)oracle中的sql語(yǔ)句有什么不同
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP