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" };
오라클 관리용 쿼리 정리
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
작년에도 비슷한 것때문에 질문을 받았는데...
그때도 마무리 짓지 못하고 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압축으로 대체로 가닥을 잡았다.
[\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 라는 녀석이 있었다..
뭐 간단히 말하면 한자 영역..
여기에 히라가나 카다카나 영역등을 넣어서 버무리면 뭔가 만들어지겠지..
다음에 혹시 필요할까봐 첨부해둠 ㅋ
이런 자료가 튀어나왔다.
내용은 해킹을 통해 동접을 가능하게 하는..
음 그러고보면 그옛날 Windows2000초창기에도 비슷한게 있었던기억이..
advServer의 dll을 가져다가 Pro에 덮어쓰면 동접이 가능해지던..
뭐 각설하고..
현Vista가 테스트환경인고로 함부로 건드릴수 없어
테스트는 하지 않았다..
판단은 각자..
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
%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
변환 툴2
이번에 영문문서대응 작업때문에 로마숫자의 점검용 코드를 줃었다.;;;(머리싸매서 하는것도 좋지만 시간대비 효용이..)
로마숫자에 대한 개요는 이걸 참조하고..
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
소스에 행번호가 표시가 안되는탓에 동료가 고생하는것을 보고
해결하기 위해 옵션(툴-옵션)을 좀 뒤볐다.
전자가 나의VS
후자가 동료의VS
후자의 경우가더 많은 옵션이 생겼고 전반에 표시되던 행번호 설정이 [에디터-언어-전반]안으로 들어가버렸다.
하나씩 체크하다보니 모든 언어라는 분류가 보인다.
여길 체크하면 모든 소스에디터상에 행번호가 표시되는듯하다.
생각보다 눈에 잘 안띄는 옵션이라 적어놓음..
물론 내머리는 여전히 플래시 메모리 ㅠ_ㅠ
중요한 사항을 빠뜨려먹고 잠시 헤멘고로 적어놓음
FileUpload콘트롤은 Async Postback으론 포스트된 파일에 접근하지 못한다.
고로 UpdatePanel의 트리거에 FileUpload콘트롤을 Postback Control로 등록을 해주어야함!!!
추가로 자바스크립트에서 파일명에 접근할땐,
Value로..
내 머리는 휘발성 메모리.. ㅠ_ㅠ
ORACLE : EmptyとNullを曖昧に判断する。
SQLSERVER : EmptyとNullを明確に判断する。
ORACLE : 昇順で、Null値は最後に配置される。
SQLSERVER : 昇順で、Null値は先頭に配置される。
ORACLE : Nvl(Field,Value)
SQLSERVER : IsNull(Field,Value)
ORACLE : Trim存在する。
SQLSERVER : RTrim/LTrimならある。
ORACLE : LPAD([文字列],38,'0')
SQLSERVER : REPLICATE('0',38-DATALENGTH([文字列]))+[文字列]
Oracle : FOR UPDATE
SQLSERVER : (UPDLOCK)
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)
ORACLE : TO_CHAR(更新日時,'YYYYMMDD')
SQLSERVER : CONVERT(varchar,更新日時,112)
ORACLE : SYSDATE(current_timestampも使えたが、グリニッジっぽい値になってしもうた。なぜ?)
SQLSERVER : current_timestamp
ORACLE : SELECT SUBSTR([文字列],2,2) FROM DUAL
SQLSERVER : SELECT SUBSTRING([文字列],2,2)
ORACLE : TO_CHAR([文字列])
SQLSERVER : 数値から文字型であれば、暗黙の変換で大丈夫。
(明示的に書くならば、CAST or CONVERT使用)
ORACLE : ||
SQLSERVER : +
ORACLE : 無くても動いた。。。
SQLSERVER : テーブル別名必須っぽい?(UNIONにも必要とは。。)
ORACLE : EMTPY→数値型へ更新が可能。Nullの扱いとなる。
SQLSERVER : EMPTY→数値型へ更新が不可。数値変換エラーとなる。
ORACLE : NUMBER(15,5)型から数値1を、SELECTすると結果は、"1"
SQLSERVER : NUMERIC(15,5)型から数値1を、SELECTすると結果は、"1.00000"
그건 바로
Escape Charater다.
.*+?|()[]{}\ 를 일컫는데
요 며칠 뒤비다 줃은 함수..
RegExp.escape = function(str) { var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g"); // .*+?|()[]{}\ return str.replace(specials, "\\$&"); }
출처 : http://snipplr.com/view/9649/escape-regular-expression-characters-in-string/