티스토리 뷰
[방법 1 - 폼은 euc-kr 처리쪽은 utf-8]
Autocompleter 를 사용하려 했을때
firebug 를 통해 쿼리문자열이 한글일때 깨지는것을 확인할 수 있다.
Autocompleter 는 prototype.js 의 Ajax.Request 를 통해 질의를 하는데
script.aculo.us 의 controls.js 에서 encodeURIComponent 인코딩 한번,
prototype.js 에서 또한번 인코딩을 해서 질의어가 깨져버린것이다.
물론, 영어는 잘된다. (영어의 우수성?)
또한 폼과 처리 페이지 모두 utf-8 인코딩 페이지라도 잘 작동한다.
다만, 부득이하게 기존 문자셋 환경 변경 없이 script.aculo.us 를 사용하려고 하는 나와같은 경우
아래와 같이 controls.js 를 패치해야 한다.
{ 모든 encodeURIComponent() 가 쓰여진곳에서 함수를 제거한다. }
var entry = this.options.paramName + '=' + this.getToken();
//var entry = encodeURIComponent(this.options.paramName) + '=' + encodeURIComponent(this.getToken());
parameters: 'editorId=' + this.element.id,
//parameters: 'editorId=' + encodeURIComponent(this.element.id),
패치이후 Autocompleter 의 Classic ASP 사용 예제
-----------------------------[ test.htm ]-----------------------------
에디터에서 ANSI 또는 euc-kr 저장
---------------------------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/ html; charset=euc-kr">
<style type="text/css">
div.autocomplete {position:absolute; width:250px; background-color:white; border:2px solid #888; margin:0px; padding:0px; height:80px; overflow:auto;}
div.autocomplete ul {list-style-type:none; margin:0px; padding:0px;}
div.autocomplete ul li.selected { background-color: #ffb;}
div.autocomplete ul li {list-style-type:none; display:block; margin:0; padding:2px; height:20px; cursor:pointer;}
</style>
<script src="./js/prototype.js" type="text/javascript"></script>
<script src="./js/scriptaculous.js" type="text/javascript"></script>
</head>
<body>
<form name="test">
<input type="text" id="autocomplete" name="autocomplete_parameter"/>
<div id="autocomplete_choices" class="autocomplete"></div>
</form>
<script type="text/javascript">
new Ajax.Autocompleter("autocomplete", "autocomplete_choices", "test1.asp", {});
</script>
<body>
</html>
-----------------------------[ test.asp ]-----------------------------
에디터에서 utf-8 저장
---------------------------------------------------------------------
<% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %>
<%
Response.Charset = "UTF-8"
'// Ajax.Autocompleter 는 POST 전송을 한다.
If Request.Form("autocomplete_parameter") = "한글" Then
%>
<ul>
<li>이것은 한글 결과</li>
</ul>
<% End If %>
서버에서 test.htm 브라우저로 로딩하고 '한글' 을 입력해본다.
[방법 2 - 폼과 처리 모두 euc-kr]
prototype.js , controls.js , dragdrop.js 파일의
encodeURIComponent(변수); 을
escape(변수).replace(/\+/g, '%2B') 로
모두 수정
'웹프로그래밍 > js' 카테고리의 다른 글
Javascript Date & Time (0) | 2009.01.06 |
---|---|
IE7 에서 image.src 작동하게 하기 (0) | 2008.11.25 |
prototype 1.6.3 이상 setValue Radio 버튼 오류 패치 (0) | 2008.10.15 |
DHTML Calendar 1.0 작은 스크립트 달력 (0) | 2008.08.28 |
이미지 업로드 전 클라이언트 경로를 통한 미리보기 (5) | 2008.07.03 |
- Total
- Today
- Yesterday
- Make Use Of
- How to geek
- 인터넷 통계정보 검색시스템
- 트위터 공유 정보모음
- 웹표준KR
- 치우의 컴맹탈출구
- Dev. Cheat Sheets
- w3schools
- Dev. 조각들
- ASP Ajax Library
- CSS Tricks
- WebResourcesDepot
- jQuery Selectors Tester
- DeveloperSnippets
- Smashing Magazine
- Nettuts+
- devListing
- 웹 리소스 사이트(한)
- Mobile tuts+
- Dream In Code
- Developer Tutorials
- CSS3 Previews
- 자북
- 안드로이드 사이드
- Code Visually
- Code School
- SQLer.com
- 무료 파워포인트 템플릿
- iconPot
- Free PowerPoint Templates
- Design Bombs
- Web Designer Wall
- 1st Webdesigner
- Vandelay Design
- 무료 벡터 이미지 사이트들
- Tripwire Magazine
- Web TrendSet
- WebMonkey
- 윤춘근 프리젠테이션 디자이너 블로그
- cz.cc 무료 DNS
- [웹하드] MediaFire
- [웹하드] DivShare
- 한컴 인터넷 오피스
- 안드로이드
- JSON
- sencha touch
- Chrome
- Docker
- 워드프레스
- ASP
- git
- Android
- iphone
- mssql
- API
- IE
- JQuery
- Prototype
- PHP
- 한글
- iis
- nginx
- Linux
- Mac
- classic asp
- Wordpress
- Debug
- laravel
- javascript
- IOS
- nodejs
- centos
- CSS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |