code sample

카테고리 없음 2014. 6. 10. 18:03
var types = ['basic', 'setting', 'detail', 'alert', 'tools', 'fault'];
	var status = ['enable', 'disable'];
	var msgAttr = {
		off : "Off",
		on : "On",
		disable : "Disable"
	};
	var iconAttr = {
		off : "./image/I_CB001_1.png"
	};
	var msgAttr1 = {
		off : "off",
		on : "on"
	};
	var iconAttr1 = {
		off : "./image/I_CB001_4.png",
		on : "./image/I_CB001_4.png"
	};
AND


오라클 관리용 쿼리 정리
http://maktub.tistory.com/22
오라클 단편화 처리
http://theone79.tistory.com/48
오라클 속도저하 고찰
http://www.sqler.com/113109
오라클 속도저하 문제 추출
http://www.oracle.com/technology/global/kr/pub/columns/dbtuning.html
오라클 모니터링 쿼리 모음
http://sjunious.egloos.com/3646080
오라클 테이블 크기 확장 방법
http://www.koug.net/xe/3504
http://www.oracleclub.com/lecture/1096
오라클 테이블 스페이스 정보 확인
http://www.koug.net/xe/3502
오라클 튜닝 단계
http://www.koug.net/xe/3495
오라클 테이블 스페이스 및 파일 관리
http://outspace.egloos.com/2246119
오라클 개발자가 범하기 쉬운 튜닝이슈 10가지
http://blog.naver.com/tosaymin/30018902426
오라클 단편화와 재구성
http://www.oracle.com/technology/global/kr/deploy/availability/htdocs/fragment.html
AND


작년에도 비슷한 것때문에 질문을 받았는데...
그때도 마무리 짓지 못하고 IE의 문제로 보여진다고만 마무리했었다.

다시금 불거져 나왔다.
이번엔 새로운 증상도 추가되었는데
파일명 자체를 인식못해서 download.aspx라고 파일 저장다이얼로그가 나옴(특정 파일명에 한해서)

고로 뒤벼본결과 역시나 IE6,7의 헤더의 길이(지난번과 동일한 답변)가 지나치게 짧아서..
총 256바이트 중 차떼고 포떼고 하면
파일명으로 사용할수 있는것은 170바이트(글자) 남짓

문젠 아스키로면 170자이다보니
파일명 인코딩을 하면
실제로는 UTF-8의 파일명영역은 1,6,9배(문자의 코드의 영역에따라)로 크기가 늘어나버린다.

아래는 1차 조사때의 보고내용

約款チェック支援システムのファイルのダウンロードにおいてのファイル名切れ問題の調査
タウンロード・プロセスによる文字列(ファイル名)の変化
状態 ファイル名 長さ CharacterSet 総サイズ 制限
アップロード前 あいうえおかきくけこさしすそたち.doc 21 UTF-8 55byte  
アップロード後(サーバー) [12345678]あいうえおかきくけこさしすそたち.doc 31 UTF-8 67byte  
結果ファイル(サーバー) [12345678]あいうえおかきくけこさしすそたち_ref.doc 35 UTF-8 71byte  
結果ファイル(転送中) %5b12345678%5d%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a%e3%81%8b%e3%81%8d%e3%81%8f%e3%81%91%e3%81%93%e3%81%95%e3%81%97%e3%81%99%e3%81%9d%e3%81%9f%e3%81%a1_ref.doc 163 ASCII 163byte キャッシュパスのサイズが255~258(ブラウザによる)バイト以下
結果ファイル(クライアント) 345678]あいうえおかきくけこさしすそたち_ref.doc 32      

Http Header
HTTP/1.1 200 OK
Server: ASP.NET Development Server/8.0.0.0
Date: Thu, 18 Jun 2009 05:26:47 GMT
X-AspNet-Version: 2.0.50727
Content-Disposition: attachment;filename=%5b12345678%5d%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a%e3%81%8b%e3%81%8d%e3%81%8f%e3%81%91%e3%81%93%e3%81%95%e3%81%97%e3%81%99%e3%81%9d%e3%81%9f%e3%81%a1_ref.doc
Cache-Control: private
Content-Type: application/unknown; charset=utf-8
Content-Length: 326

文字の変換
文字 CharacterSet 一文字のサイズ 長さ 総サイズ
UTF-8 1~4バイト(可変) 1 3バイト
%E3%81%82 ASCII 1バイト 9 9バイト

UTF-8の規格
長さ 対象 サイズ
一桁 ASCII 1バイト
二桁 記号(ヨーロッパ文字) 6バイト
三桁 日本語、韓国語、中国語など 9バイト
四桁   12バイト

암튼 아래 내용은 한글 관련이지만 어차피 비슷한 내용
http://www.hoons.kr/board.aspx?Name=QAASPNET&Mode=2&BoardIdx=3590&Key=&Value=

이건 마소의 서포트 내용 
http://support.microsoft.com/kb/436616/ja 

위의 내용에 실린 globalization을 설정해보았지만 역시나 해결불가..

인코딩후의 길이가 170 이상이면 zip압축으로 대체로 가닥을 잡았다.
AND

[\x80-\xFF]{2}
를 이용한 영문 이외의 문자 검출방법에서힌트를 얻었다.

유니코드에서 한글은 u+1100(첫가끝영역), u+ac00(한글완성형영역), u+3130(한글자모영역) 이렇게 세가지 영역에 분포되어 있습니다...
http://www.unicode.org/charts/PDF/UAC00.pdf http://www.unicode.org/charts/PDF/U1100.pdf http://www.unicode.org/charts/PDF/U3130.pdf
라는 귀중한 정보를 바탕으로
([\uac00-\ud7af\u3130-\u318f\u1100-\u11FF])*식을 만들고
그리고 ASCII영역중 기호 숫자 알파벳 영역
([\x20-\x7e])*을 추가

다음은 일본어 검출

[\x20-\x7e]     //JISローマ字(ASCII)・文字コード表
[\uff61-\uff9f] //JISカナ(半角カナ)・文字コード表
확인결과
일본어 한자는 코드가 산재해있어 식으로 만드는것은 무리가 있어보인다. =.=

참고사이트
http://ash.jp/code/index.htm
http://kldp.org/node/63910

-----------------------------------------------------------------------------------------------------------------
라고 알고 있었는데..

IsCJKUnifiedIdeographs 라는 녀석이 있었다..
뭐 간단히 말하면 한자 영역..
여기에 히라가나 카다카나 영역등을 넣어서 버무리면 뭔가 만들어지겠지..

다음에 혹시 필요할까봐 첨부해둠 ㅋ

AND

1서버가 아니라 동접이 안되는 짜증을 해결하려 뒤비다보니
이런 자료가 튀어나왔다.

내용은 해킹을 통해 동접을 가능하게 하는..

음 그러고보면 그옛날 Windows2000초창기에도 비슷한게 있었던기억이..
advServer의 dll을 가져다가 Pro에 덮어쓰면 동접이 가능해지던..

뭐 각설하고..
현Vista가 테스트환경인고로 함부로 건드릴수 없어
테스트는 하지 않았다..

판단은 각자..

AND

CAKE PHP관련

WEB/PHP 2009. 7. 26. 23:31
AND

AND


AND

javascript의 escape(), encodeURI(), encodeURIComponent()함수들에 대해서,
어느 문자가 인코딩 되고,어느문자가 인코딩되지 않는지, 알아보기 힘들기 때문에 정리해둠.

우선은 대상의 범위는 %20(공백문자)부터 %7E(~)까지

원 데이터 

 !"#$%&'()*+,-./
0123456789
:;<=>?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ
[\]^_`
abcdefghijklmnopqrstuvwxyz
{|}~

escape()

%20%21%22%23%24%25%26%27%28%29*+%2C-./
0123456789
%3A%3B%3C%3D%3E%3F@
ABCDEFGHIJKLMNOPQRSTUVWXYZ
%5B%5C%5D%5E_%60
abcdefghijklmnopqrstuvwxyz
%7B%7C%7D%7E%7F

encodeURI()

%20!%22#$%25&'()*+,-./
0123456789
:;%3C=%3E?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ
%5B%5C%5D%5E_%60
abcdefghijklmnopqrstuvwxyz
%7B%7C%7D~%7F

encodeURIComponent()

%20!%22%23%24%25%26'()*%2B%2C-.%2F
0123456789
%3A%3B%3C%3D%3E%3F%40
ABCDEFGHIJKLMNOPQRSTUVWXYZ
%5B%5C%5D%5E_%60
abcdefghijklmnopqrstuvwxyz
%7B%7C%7D~%7F

정리

  • 모든 함수가[0-9A-Za-z]는 변환하지 않음.
  • escape()가 변환하지 않는 기호는 *+-./@_ 임.
  • encodeURI()가 변환하지 않는 기호는 !#$'()*+,-./:;=?@_~ 임.
  • encodeURIComponent()가 변환하지 않는 기호는 !'()*-._~ 임.
  • 다중 바이트나 코드에 대해서는, 예를들면 UTF-8의 「あ」는 escape()의 경우 %u3042, encodeURL() 및 encodeURIComponent()의 경우 %E3%81%82 임.

덤.
변환 툴1

source :
escape() :
encodeURI() :
encodeURIComponent() :

변환 툴2 

input :
output :
decode by :
출처 : http://groundwalker.com/blog/2007/02/javascript_escape_encodeuri_encodeuricomponent_.html
AND

이번에 영문문서대응 작업때문에 로마숫자의 점검용 코드를 줃었다.;;;(머리싸매서 하는것도 좋지만 시간대비 효용이..)

로마숫자에 대한 개요는 이걸 참조하고..

Roman Alternative Arabic Notes
없음 없음 0 0을 표시할 수 없음.
I 1  
II ⅠⅠ (or Ⅱ) 2  
III ⅠⅠⅠ (or Ⅲ) 3  
IV ⅠⅤ (or Ⅳ) 4 시계 문자판 등에서는 IIII (ⅠⅠⅠⅠ)이 쓰임.
V 5  
VI ⅤⅠ (or Ⅵ) 6  
VII ⅤⅠⅠ (or Ⅶ) 7  
VIII ⅤⅠⅠⅠ (or Ⅷ) 8  
IX ⅠⅩ (or Ⅸ) 9  
X 10  
XI ⅩⅠ (or Ⅺ) 11  
XII ⅩⅠⅠ (or Ⅻ) 12  
XIII ⅩⅠⅠⅠ 13  
XIV ⅩⅠⅤ 14  
XV ⅩⅤ 15  
XIX ⅩⅠⅩ 19  
XX ⅩⅩ 20  
XXX ⅩⅩⅩ 30  
XL ⅩⅬ 40  
L 50  
LX ⅬⅩ 60  
LXX ⅬⅩⅩ 70  
LXXX ⅬⅩⅩⅩ 80  
XC ⅩⅭ 90  
C 100 미국의 100달러 지폐를 "C-bill"이나 "C-note"라고 부르는 연유이다.
CC ⅭⅭ 200  
CD ⅭⅮ 400  
D 500 IↃ또는 1000 표기의 절반이란 의미에서 유래.
DCLXVI ⅮⅭⅬⅩⅤⅠ 666 짐승의 수에는 M 이외의 다른 모든 기본 부호가 한번씩 나타난다.
CM ⅭⅯ 900  
M 1000 예전엔 ↀ을 쓰기도 했다.
MCMXLV ⅯⅭⅯⅩⅬⅤ 1945  
MCMXCIX ⅯⅭⅯⅩⅭⅠⅩ 1999 IMM (ⅠⅯⅯ)이나 MIM (ⅯⅠⅯ)으로 줄여서 쓸 수 없다.
MM ⅯⅯ 2000  
MMM ⅯⅯⅯ 3000  
ⅠↃↃ 5000 I 뒤에 C를 두번 거꾸로 쓴 모양.

이 모든걸 점검할 수 있는 식이
^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$
이다.

위의 코드중 특수문자에서 대응되는 범위는 1-10까지이다.
ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ (일본어 비스타 폰트는 12까지 지원)
시간나면 컨버터도 만들어야겠다..

참고자료 :

http://ko.wikipedia.org/wiki/%EB%A1%9C%EB%A7%88_%EC%88%AB%EC%9E%90
http://diveintopython.org/regular_expressions/roman_numerals.html
http://stackoverflow.com/questions/267399/how-do-you-match-only-valid-roman-numerals-with-a-regular-expression
http://www.crowes-nest.com/CrowesNest/Library/RomanConv/roman.html
http://www.csharphelp.com/archives/archive144.html

AND

간혹 세팅을 잘못(?)하여
소스에 행번호가 표시가 안되는탓에 동료가 고생하는것을 보고
해결하기 위해 옵션(툴-옵션)을 좀 뒤볐다.

전자가 나의VS
후자가 동료의VS

후자의 경우가더 많은 옵션이 생겼고 전반에 표시되던 행번호 설정이 [에디터-언어-전반]안으로 들어가버렸다.
하나씩 체크하다보니 모든 언어라는 분류가 보인다.
여길 체크하면 모든 소스에디터상에 행번호가 표시되는듯하다.


생각보다 눈에 잘 안띄는 옵션이라 적어놓음..
물론 내머리는 여전히 플래시 메모리 ㅠ_ㅠ
AND

구 소스를 활용하여 UI를 변경하던중
중요한 사항을 빠뜨려먹고 잠시 헤멘고로 적어놓음

FileUpload콘트롤은 Async Postback으론 포스트된 파일에 접근하지 못한다.
고로 UpdatePanel의 트리거에 FileUpload콘트롤을 Postback Control로 등록을 해주어야함!!!

추가로 자바스크립트에서 파일명에 접근할땐,
Value로..

내 머리는 휘발성 메모리.. ㅠ_ㅠ
AND

1.NullとEmptyの違い
  ORACLE : EmptyとNullを曖昧に判断する。
  SQLSERVER : EmptyとNullを明確に判断する。
2.Nullのソート順
  ORACLE : 昇順で、Null値は最後に配置される。
  SQLSERVER : 昇順で、Null値は先頭に配置される。
3.Null置き換え関数
  ORACLE : Nvl(Field,Value)
  SQLSERVER : IsNull(Field,Value)
4.Trim
  ORACLE : Trim存在する。
  SQLSERVER : RTrim/LTrimならある。
5.左文字詰め('0'埋めだと)
  ORACLE : LPAD([文字列],38,'0')
  SQLSERVER : REPLICATE('0',38-DATALENGTH([文字列]))+[文字列]
6.ロック(占有ロックとの事。。)
  Oracle : FOR UPDATE
  SQLSERVER : (UPDLOCK)
7.文字型→日付型変換
  ORACLE : TO_DATE('2000/01/01 10:20:30','yyyy/mm/dd hh24:mi:ss')
  SQLSERVER : CONVERT ( datetime,'2000/01/01 10:20:30',120)
8.日付型→文字型変換
  ORACLE : TO_CHAR(更新日時,'YYYYMMDD')
  SQLSERVER : CONVERT(varchar,更新日時,112)
9.システム日付
  ORACLE : SYSDATE(current_timestampも使えたが、グリニッジっぽい値になってしもうた。なぜ?)
  SQLSERVER : current_timestamp
10.文字列切り出し
  ORACLE : SELECT SUBSTR([文字列],2,2) FROM DUAL
  SQLSERVER : SELECT SUBSTRING([文字列],2,2)
11.数値→文字列変換
  ORACLE : TO_CHAR([文字列])
  SQLSERVER : 数値から文字型であれば、暗黙の変換で大丈夫。
        (明示的に書くならば、CAST or CONVERT使用)
12.文字列連結  
  ORACLE : ||
  SQLSERVER : +
13.JOIN時のテーブル別名
  ORACLE : 無くても動いた。。。
  SQLSERVER : テーブル別名必須っぽい?(UNIONにも必要とは。。)
14.EMPTY→数値型の更新について。
  ORACLE : EMTPY→数値型へ更新が可能。Nullの扱いとなる。
  SQLSERVER : EMPTY→数値型へ更新が不可。数値変換エラーとなる。
15.余分な0が付加される。(ドライバのせい?)
  ORACLE : NUMBER(15,5)型から数値1を、SELECTすると結果は、"1"
  SQLSERVER : NUMERIC(15,5)型から数値1を、SELECTすると結果は、"1.00000"
16.それぞれの予約語に注意。。  

 
출처 : http://b.drmg.net/archives/cat_279301.html

AND

AND

문자열을 입력받아서 필터링하는데 있어 걸림돌이 되는 녀석

그건 바로

Escape Charater다.

.*+?|()[]{}\ 를 일컫는데

요 며칠 뒤비다 줃은 함수..

  1. RegExp.escape = function(str)
  2. {
  3. var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g"); // .*+?|()[]{}\
  4. return str.replace(specials, "\\$&");
  5. }
귀찮으니 그냥 쓰자 ㅋㅋ

출처 : http://snipplr.com/view/9649/escape-regular-expression-characters-in-string/
AND