MS-SQL 2005 관련 관리 툴들의 메뉴 한글 깨짐 현상#

 

설치환경#

OS : Microsoft Windows 2008 Standard Server with ServicePack 1 한글 x86 64Bit

DBMS : Microsoft SQL Server 2008 Standard 한글 x86 64Bit

H/W : HP DL380 G5

OS 설치 방법 : HP SmartStart v8.00으로 설치

 

오류사항#

 SQL Server 2005 설치 후 관리 툴인 Microsoft Server Management Studio와 SQL Server Business Intelligence Development Studio를 실행 시 한글 메뉴들의 깨짐 현상

SQLManagement_Error.jpg VisualStudio_Font_Error.jpg

 

장애 발생 요인#

 HP서버 구매시 OS설치 용도로 제공되는 HP SmartStart v8.0으로 설치시 초기 설치 모드는 한글이 지원되지 않아 영어로 설치한후 설치 완료후 한글로 설치를 마무리를 하는데 여기서 장애 발생 요인이 생긴다.

Windows2008Error_UTF8Charset_Eng.jpg

 

해결 방법#

 [시작]-[제어판]-[국가 및 언어 옵션]-<관리자 옵션>에서 "유니코드를 지원하지 않는 프로그램용 언어" 설정을 한국어(대한민국)으로 변경

Windows2008Modify_UTF8Charset_Eng2Kor.jpg 

 

 

결과#

해당 관리 툴들을 실행시켜보면 메뉴들이 정상적으로 보임(화면 캡쳐 이미지 첨부 생략)

 

 

이 글은 스프링노트에서 작성되었습니다.

array_walk를 이용한 배열 함수


제가 사용하는 class로 만든 일부분 입니다. 그냥 봐보세요 ^^ 전 array_walk(php3,4,5지원/array_map는 php4.0.6이상)를 이용했습니다
아래 여기저기 조합한 것들이라 출처는 저도 기억이 나지 않습니다.
필요에 따라서는 수정한 부분도 있었던것 같고요 ^^

<?php
class Fun {
    /**
     * 배열값들의 앞뒤 공백 없애기
     * @Call $this->trimAll() : 재귀호출(자기자신 호출)
     * @Param &$array {array}
     * @Return $array {array} : &변수이므로 그값을 그대로 가짐(C의 포인터(?))
     */
    function trimAll(&$array) {
          if( is_array($array) ) {
              // class 일경우 array_walk ($array, array($this, 'trimAll'));
            array_walk ($array, array($this, 'trimAll'));
          } else {
            $array = trim($array);
          }
    }
    /**
     * 배열값 전체에 addslashes
     * @Call $this->addslashesAll() : 재귀호출(자기자신 호출)
     * @Param &$array {array}
     * @Return $array {array} : &변수이므로 그값을 그대로 가짐(C의 포인터(?))
     */
    function addslashesAll(&$array) {
        if (get_magic_quotes_gpc() == false){
            if(is_array($array)) {
                array_walk ($array, array($this, 'addslashesAll'));
            } else {
                $array = addslashes($array);
            }
        }
    }
     /**
     * 배열값 전체에 stripslashes
     * @Call $this->stripslashesAll() : 재귀호출(자기자신 호출)
     * @Param &$array {array}
     * @Return $array {array} : &변수이므로 그값을 그대로 가짐(C의 포인터(?))
     */
    function stripslashesAll(&$array) {
        if(is_array($array)) {
            array_walk ($array, array($this, 'stripslashesAll'));
        } else {
              $array = stripslashes($array);
        }
    }
    //EUC-KR(한글 코드페이지[949])을 UTF-8로
    function iconv_utf8All(&$array){
        if( is_array($array) ) {
              // class 일경우 array_walk ($array, array($this, 'trimAll'));
            array_walk ($array, array($this, 'iconv_utf8All'));
          } else {
            //$array = iconv($slang,$tlang,$array);
            if (iconv("UTF-8","UTF-8",$array) == $array) {
                $array = $array;
              } else {
                $array = iconv("CP949","UTF-8",$array);
              }

          }
    }
    //UTF-8을 EUC-KR(한글 코드페이지[949])로
    function iconv_CP949All(&$array){
        if( is_array($array) ) {
              // class 일경우 array_walk ($array, array($this, 'trimAll'));
            array_walk ($array, array($this, 'iconv_CP949All'));
          } else {
            //$array = iconv($slang,$tlang,$array);
            if (iconv("CP949","CP949",$array) == $array) {
                $array = $array;
              } else {
                $array = iconv("UTF-8","CP949",$array);
              }

          }
    }
}
?>

이 글은 스프링노트에서 작성되었습니다.

+ Recent posts