급 어제에 이어서 오라클 한글이 깨지는경우 2.....

   조회 5671   추천 0    



안녕하세요. 다들 날씨가 추워병쨉조심하세요


현재 오라클 쿼리돌릴시에 한글은 모두 정상적으로 나옵니다.


DB캐릭터셋은  KO16KSC5601 입니다.


centos 6.4 오라클 10g , sqlrelay를 사용하여 오라클을 붙습니다 프레임p은  CodeIgniter를 사용합니다.


web서버에서 php 에서 db 를 연결한후 쿼리를 실행할때 한글이 ???로 팁들어옵니다.


제가 생각하는걸로는

1. DB서버에서 WEB 서버로 가져올때 한글이 깨진다.

2. CodeIgniter 안에서 캐릭터셋 설정을 잘못해줬기 때문에 한글이 깨진다.


이부분을 알수있는방법이없을까요 ?

현재 잘되고있는 운영서버랑 제가만든서버랑 비교하는데 .. 틀린점을 모르겠네요...


=============지난글==================


안녕하세요
다들 바쁘신데 고생많으십니다.





현재 상황입니다.

root 게정의 .bash_profile 입니다.

export ORACLE_BASE=usr/lib/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.3/client
export TNS_ADMIN=$ORACLE_BASE/network/admin
export NLS_LANG=American_America.KO16KSC5601
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LANG=ko_KR.eucKR
export ORACLE_TERM=vt100

NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
PATH=$PATH:$HOME/bin:/usr/local/firstworks/bin

export PATH NLS_LANG
unset USERNAME


apache php 웹서버의  .bash_profile 입니다.


DB서버에 접속한후 쿼리 돌릴 시 나오는 데이터입니다.



select * from sys.props$ where name='NLS_CHARACTERSET';
NLS_CHARACTERSETKO16KSC5601Character set


select * from sys.props$ where name='NLS_LANGUAGE';
NLS_LANGUAGEAMERICANLanguage

입니다.


DB서버의 ORACLE .bash_profile 입니다.

export LANG=C
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=shonmdb
export ORACLE_HOME_LISTNER=$ORACLE_HOME/bin/lsnrctl
export PATH=$PATH:$ORACLE_HOME/bin
export DISPLAY=:0
export LD_LIBRARY_PATH=$LD_LIBARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=American_America.KO16KSC5601



KO16KSC5601 로 둘다 맞춘거같은데.. 왜 ??로 나오는지 이해가 가지않습니다 ....



아참 그리고 함부로 


update sys.props$ set value$='UTF8' where name='NLS_CHARACTERSET';
update sys.props$ set value$='UTF8' where name='NLS_NCHAR_CHARACTERSET';
update sys.props$ set value$='KOREAN_KOREA.UTF8' where name='NLS_LANGUAGE'; 

이런 명령어가 돌아다니는데 사용하지마세요 .. 이것때문에 데이터베이스 날렸습니다..덤프 해놓은게잇어서 다행이네요.

위와같이 언어를 바꾸는경우는 db 버전과 환경설정 호환을 보고 하셔야합니다.

정말주의하세요...


박지훈
짧은글 일수록 신중하게.
김제연 2017-02
웹 서버는 크게 상관이 없을 것 같고 .. 오라클을 안써봤는데 .. 오라클에서 가져오는 변수 자체가 .. 어떻게 되는지 디버깅 해보세요 ..

기억으론.. 예전 질문에 .. 오라클을 사용하는데 codeigniter 의 datatbase를 사용하지 않고 .. 다른 방식으로 사용 하신다고 하셨던것 같으데요 .
그 .. 어떻게 다르 방법으로 사용중이신지 써주셔야 할것 같습니다.. codeigniter 의. config 의 database에 ..캐릭터셋을 설정해주면 되는데 .. 다른 방법을
사용하고 계시다니 .. 같은 방법으로 해결되지 않을 것 같습니다.

그리고 어제 찾아보니 db의 캐릭터셋이랑.. nls_lang 의 값이 틀려도 상관 없다네요 .
     
질문학생 2017-02
코드 이그니터 소스는 운영소스를 그대로 가져온건데 ... 흐음 ... 뭐가다른지 ㅜㅠㅠㅠㅠㅠ  web서버의 oracle 계정을만들고 .bash_profile 을 수정해야할까요 ...?
DAP박인호 2017-02
html 소스보기 해보세요.
문자셋 메타 설정이 잘못 됬을 가능성도 있네요.

웝 문자셋은 통신 경로 하나하나 체크해 봐야 합니다.
     
질문학생 2017-02
HTML 이나 php 소스는 운영에있는거 그대로 가져왔기 대문에  다똑같습니다, ㅠㅠ
ZSNET5 2017-02
"현재 오라클 쿼리돌릴시에 한글은 모두 정상적으로 나옵니다."라고 하시니 이미 답은 나와 있네요.
     
질문학생 2017-02
답을모르겠는데 알려주시겠나요
공돌이 2017-02
위의 케이스는 오라클 캐릭터셋은 관계없습니다.
PHP에서 DB커넥션하는 소스를 살펴보세요.
캐릭터셋 지정하는 부분이 있을겁니다.


QnA
제목Page 3342/5708
2015-12   1673646   백메가
2014-05   5139148   정은준1
2015-01   5675   50cent
2006-01   5675   김지환
2007-04   5675   김재평
2008-06   5675   김상일
2018-06   5675   통통9
2015-03   5675   영산회상
2011-10   5675   오성기
2009-09   5675   힘내용
2005-11   5675   박이준
2005-10   5675   이창석
2012-03   5675   김효수
2005-10   5675   박용선
2006-06   5675   서태희
2006-01   5675   이희원
2015-03   5675   윈도우10
2020-12   5675   미스티
2012-08   5675   유호준
2006-02   5675   신현균
2007-04   5675   이정동
2006-01   5675   한상천