Unicode হলো একটি আন্তর্জাতিক স্ট্যান্ডার্ড যা পৃথিবীজুড়ে ভাষা, স্ক্রিপ্ট এবং অন্যান্য লিখিত প্রতীকগুলিকে একটি সাধারণ স্ট্যান্ডার্ডে অন্তর্ভুক্ত করে। Java তে Unicode এর পূর্ণ সমর্থন রয়েছে, যা নিশ্চিত করে যে Java অ্যাপ্লিকেশনগুলি বিশ্বের বিভিন্ন ভাষার ডেটা সঠিকভাবে প্রক্রিয়া করতে এবং প্রদর্শন করতে সক্ষম।
Java তে Unicode সমর্থনের মাধ্যমে বিভিন্ন ভাষায় text প্রদর্শন এবং data manipulation অনেক সহজ হয়ে ওঠে।
Java এবং Unicode Compatibility
Java তে Unicode সমর্থন বিভিন্ন উপায়ে তৈরি করা হয়েছে, যেমন String এবং Character ক্লাসগুলোর মাধ্যমে। Java এর সমস্ত String অবজেক্ট Unicode কোড পয়েন্ট সমর্থন করে, যা বিভিন্ন ভাষার অক্ষর ও প্রতীক গুলি একটি সাধারণ ফরম্যাটে সঠিকভাবে উপস্থাপন করতে সাহায্য করে।
Java String এবং Unicode:
- Java String এবং Character ক্লাসগুলি মূলত Unicode এর ভিত্তিতে তৈরি করা হয়েছে। এটি 16-বিট Unicode encoding ব্যবহার করে, যার ফলে এটি বিশ্বের প্রায় সকল ভাষার অক্ষরকে সঠিকভাবে সংরক্ষণ এবং পরিচালনা করতে সক্ষম।
- Java String ক্লাসের প্রতিটি অক্ষর UTF-16 এ এনকোড করা হয়, যা Unicode স্ট্যান্ডার্ডের একটি অংশ।
Character Class:
- Character ক্লাসের মধ্যে Unicode-এ অক্ষর সংরক্ষণের জন্য char ডেটা টাইপ ব্যবহার করা হয়।
- এটি Unicode এর কোড পয়েন্টে কাজ করে এবং যেকোন Unicode অক্ষর ধারণ করতে সক্ষম।
Unicode Encoding in Java
Java Unicode ব্যবহার করে সঠিকভাবে অক্ষর রেন্ডার করার জন্য বিভিন্ন এনকোডিং স্কিম সমর্থন করে। যেমন UTF-8, UTF-16, এবং UTF-32। Java এর ইন্টারনাল স্টোরেজ UTF-16 এনকোডিং ব্যবহার করে, তবে আপনি অন্য এনকোডিং ব্যবহারের জন্য Java এর InputStreamReader এবং OutputStreamWriter ক্লাস ব্যবহার করতে পারেন।
Java এ Unicode স্ট্রিং-এর ব্যবহার:
public class UnicodeExample {
public static void main(String[] args) {
// একটি Unicode স্ট্রিং তৈরি
String unicodeString = "Hello, \u4F60\u597D"; // "你好" (Chinese: Hello)
System.out.println("Unicode String: " + unicodeString);
// একটি Unicode অক্ষর
char unicodeChar = '\u03A9'; // Ω (Greek letter Omega)
System.out.println("Unicode Character: " + unicodeChar);
}
}
ব্যাখ্যা:
\uহল Unicode escape sequence যা একটি Unicode কোড পয়েন্টের মাধ্যমে অক্ষরকে প্রকাশ করে। এখানে\u4F60এবং\u597Dহল চীনা অক্ষর "你好" (Hello), এবং\u03A9হল গ্রীক অক্ষর Ω।
আউটপুট:
Unicode String: Hello, 你好
Unicode Character: Ω
Java এবং Unicode: Text Encoding Compatibility
Java এ Unicode সম্পূর্ণভাবে সমর্থিত, এবং UTF-8 এবং UTF-16 এনকোডিং জেনারেল রিকগনাইজড স্ট্যান্ডার্ডের মধ্যে থাকে। UTF-8 হল সবচেয়ে কমন এনকোডিং স্ট্যান্ডার্ড যেটি পুরো বিশ্বে বহুল ব্যবহৃত এবং Java তে এনকোডিং সহ InputStreamReader এবং OutputStreamWriter এর মাধ্যমে ব্যবহার করা যায়।
UTF-8 এবং UTF-16-এর মধ্যে পার্থক্য:
- UTF-8:
- 1 থেকে 4 বাইট ব্যবহার করে প্রতিটি অক্ষরের এনকোডিং।
- এটি ASCII অক্ষরের জন্য 1 বাইট এবং অন্য অক্ষরের জন্য 2 থেকে 4 বাইট ব্যবহার করে।
- বিশ্বের অধিকাংশ ওয়েব এবং ডেটাবেস সিস্টেম UTF-8 ব্যবহার করে।
- UTF-16:
- 2 বা 4 বাইট ব্যবহার করে।
- এটি Java এর ইন্টারনাল স্টোরেজের জন্য ব্যবহৃত এনকোডিং, যা একটি নির্দিষ্ট অক্ষরের জন্য 2 বাইট ব্যবহার করে এবং পরবর্তী কিছু অক্ষরের জন্য 4 বাইট ব্যবহার করে।
Unicode and Locale Support in Java
Java Locale এর মাধ্যমে Unicode ডেটার localization বা স্থানীয়করণ সমর্থন করে। Locale একটি ভৌগলিক অঞ্চলের ভাষা, দেশ এবং অন্যান্য সাংস্কৃতিক নিয়মের ভিত্তিতে তথ্য প্রক্রিয়া করতে সহায়ক। Java অ্যাপ্লিকেশনগুলি locale-specific data যেমন তারিখ, সময়, সংখ্যা, এবং মুদ্রা সঠিকভাবে প্রদর্শন করতে পারে।
Locale with Unicode Example:
import java.util.*;
import java.text.*;
public class LocaleExample {
public static void main(String[] args) {
// Locale তৈরি করা
Locale locale = new Locale("zh", "CN"); // Chinese (Simplified), China
// DateFormat তৈরি করা
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, locale);
// বর্তমান তারিখ ফরম্যাট করা
String formattedDate = df.format(new Date());
System.out.println("Formatted Date in Locale " + locale.getDisplayName() + ": " + formattedDate);
}
}
ব্যাখ্যা:
- Locale ব্যবহার করে একটি নির্দিষ্ট দেশের জন্য স্থানীয় সংস্করণে তারিখ প্রদর্শন করা হচ্ছে।
- এখানে zh (Chinese) এবং CN (China) দ্বারা Chinese (Simplified) ভাষার জন্য একটি Locale তৈরি করা হয়েছে।
আউটপুট (China Locale):
Formatted Date in Locale Chinese (China): 2024年12月22日
Java এবং Unicode: String Manipulation
Java তে Unicode স্ট্রিংয়ের সাথে কাজ করার সময় কিছু সাধারণ স্ট্রিং অপারেশন যেমন length(), charAt(), substring() ইত্যাদি অবিকৃতভাবে কাজ করে। Java স্ট্রিং অপারেশনগুলি Unicode স্ট্যান্ডার্ডের সাথে সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ, এবং এরা সমস্ত ইউনিকোড অক্ষর সহ কাজ করে।
Unicode String Length Example:
public class UnicodeLengthExample {
public static void main(String[] args) {
String unicodeStr = "こんにちは"; // Japanese Greeting: "Hello"
// স্ট্রিং এর দৈর্ঘ্য পাওয়া
System.out.println("Unicode String Length: " + unicodeStr.length());
}
}
ব্যাখ্যা:
length()মেথড দ্বারা একটি Unicode স্ট্রিংয়ের দৈর্ঘ্য বের করা হচ্ছে।
আউটপুট:
Unicode String Length: 5
এখানে "こんにちは" স্ট্রিংটির মধ্যে 5টি ইউনিকোড অক্ষর রয়েছে।
Java তে Unicode এবং Character Encoding
- UTF-8 (Unicode Transformation Format - 8-bit):
- এটি ASCII এর সাথে সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ এবং বিশ্বব্যাপী সবচেয়ে বেশি ব্যবহৃত character encoding ফর্ম্যাট।
- UTF-16 (Unicode Transformation Format - 16-bit):
- Java ইন্টারনাল স্টোরেজে UTF-16 এনকোডিং ব্যবহার করে, যা বিশ্বের অধিকাংশ ভাষার অক্ষরের জন্য দুটি বাইট এবং কিছু অক্ষরের জন্য চারটি বাইট ব্যবহার করে।
- Java String Representation:
- Java-র
Stringক্লাস UTF-16 এনকোডিংয়ের ভিত্তিতে তৈরি, যা Unicode কোড পয়েন্ট সমর্থন করে।
- Java-র
- Unicode Java তে worldwide characters এবং internationalization সমর্থন করার জন্য অপরিহার্য।
- UTF-16 এ Java String স্টোর হয় এবং UTF-8 প্রায় সমস্ত মডার্ন সিস্টেমে ব্যবহৃত হয়, তাই Java Unicode এবং Character Encoding এর সাথে পুরোপুরি সামঞ্জস্যপূর্ণ।
- Locale এবং Unicode এর সমন্বয়ে Java অ্যাপ্লিকেশনগুলি internationalization (i18n) এবং localization (l10n) এর মাধ্যমে বিভিন্ন ভাষায় ডেটা প্রক্রিয়া এবং প্রদর্শন করতে সক্ষম।
Read more