ஒருங்குறி
கடைசியா புடுங்கிய ஆணி – Tamil(Unicode) Characters in Java basedweb application [5.1.2011]
by nirujah on Jan.06, 2011, under ஒருங்குறி, கணணி, ஜாவா
கடந்த சில வாரங்களாக எனக்கு இருந்த மிகப் பெரிய ஆணியை ஒருமாதிரி இன்று புடுங்கியாகிவிட்டது. நான் இப்ப வேலை செய்யிறது ஒரு பன்மொழிப் பயன்பாடு உள்ள ஒரு web application. தற்போது ஆங்கிலம் தமிழ் மற்றும் சிங்களம் ஆகியன பயன்படுத்தப்பட்டாலும், இதில கிட்டத்தட்ட 5க்கு மேற்பட்ட இந்திய மொழிகளைக் கொண்டு தரவு உள்ளீடு செய்ய வேண்டி இருக்கும்.
ஆக தரவு எல்லாமே ஒருங்குறியில தான் உள்ளீடு செய்ய வேணும். எங்கட application முழுக்க முழுக்க java வில தான் எழுதினது. Struts, Hibernate மற்றும் Spring ஆகிய framework பயன்படுத்தப்பட்டுள்ளது. database ஆக mysql5.1 பாவிக்கிறம். இந்த database உருவாக்கேக்க character set = utf8 உம் collate = utf8_generic கும் பயன்படுத்தியிருக்கிறம். இதே போல தான் table உருவாக்கேக்க எல்லாம் மறக்காம utf8 பாவிச்சனாங்கள். தவிர database connection pooling க்காக proxool என்டிர API யும் பாவிக்கிறம். அதிலயும் connection settings எல்லாம் சரியாதான் இருந்திச்சு.

<driver-url>jdbc:mysql://localhost:3306/mboxx?useUnicode=true&characterEncoding=UTF-8</driver-url><driver-class>com.mysql.jdbc.Driver</driver-class><driver-url>jdbc:mysql://localhost:3306/mboxx?useUnicode=true&characterEncoding=UTF-8</driver-url> <driver-class>com.mysql.jdbc.Driver</driver-class>
<%@ page contentType=”text/html;charset=UTF-8″ import=”java.util.*” language=”java” pageEncoding=”UTF-8″ %>மற்றும்<meta http-equiv=”Content-type” content=”text/html; charset=utf-8″/>
முதலாவதா இருக்கிற வரியை [jst tag], jsp page இன்டை தொடக்கத்திலையும், அடுத்த வரியை html page இன்டை head tag க்கு உள்ளையும் எழுதி இருந்தனான். அது மட்டுமில்ல, servlet ல வாற request object ஐ பயன்படுத்த முதல் அதுக்கும் request.setCharacterEncoding(“UTF-8″); என்ட encoding எல்லாம் குடுத்தனான். ஆனா பாருங்கோ, web page ல தமிழ்ழை தட்டி சேமிக்க போனா, மாலவன௠இப்பிடி தான் கோழி கோழி முட்டை முட்டையா எழுத்துக்கள் வந்திச்சு. இதுவே நேரா database client ஐ பயன்படுத்தி, database ல தமிழில தட்டீட்டு web application ஐ பாவிச்சு பாத்தா அது சரியா தமிழில தெரிஞ்சிச்சு. என்னடா இது வில்லங்கம் பிடிச்ச ஆணியா கிடக்கு எண்டு கூகுல் சாமிய போட்டு உலுப்புலுப்பெண்டு 3 கிழமையா உலுப்பியும் ஒண்டும் கொட்டுண்டேல்ல. ஒரு கட்டத்தில இதுக்கு வேற வழி எதாவது இருக்கா எண்டு பாத்து தற்காலிகமா ஒரு தீர்வு குடுத்துட்டு மற்ற ஆணிகளைப்பாக்க போட்டன்.<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
இப்பிடி ஒரு வழியா வேலைசெய்ய வச்சாச்சு. இப்ப, request.characterEncoding, எல்லாம் தேவையில்லை. எல்லாம் சரியா வேலைசெய்யுது.![]()
