JSON Encoding/Decoding এ Unicode ব্যবহার

Unicode Codepoint Escape Syntax (ইউনিকোড কোডপয়েন্ট এস্কেপ সিনট্যাক্স) - পিএইচপি (PHP 7) - Computer Programming

453

JSON Encoding/Decoding PHP-তে JSON ডেটা পদ্ধতি ব্যবহার করতে ব্যবহৃত হয়, যা ডেটা স্টোরেজ এবং ট্রান্সমিশনের জন্য জনপ্রিয় ফরম্যাট। json_encode() এবং json_decode() ফাংশন ব্যবহার করে PHP-তে JSON ডেটা এনকোড এবং ডিকোড করা হয়। তবে যখন আপনি Unicode ব্যবহার করেন, বিশেষত অন্যান্য ভাষার অক্ষর যেমন বাংলা, আরবি বা চাইনিজ ক্যারেক্টার, তখন কিছু অতিরিক্ত বিষয় মাথায় রাখতে হবে।

Unicode এর মাধ্যমে JSON Encoding/Decoding

JSON এবং Unicode

JSON (JavaScript Object Notation) UTF-8 এনকোডিং অনুসরণ করে, অর্থাৎ JSON ফাইল বা স্ট্রিং সাধারণত ইউটিএফ-8 এনকোডিং পদ্ধতিতে থাকে, যা সমস্ত ইউনিকোড অক্ষর সমর্থন করে। তবে, PHP-তে json_encode() বা json_decode() ব্যবহারের সময় কিছু বিশেষ কেসে Unicode অক্ষরকে সঠিকভাবে এনকোড এবং ডিকোড করার জন্য কিছু অতিরিক্ত কৌশল প্রয়োজন হতে পারে।


১. JSON Encoding with Unicode Characters (Unicode সহ JSON এনকোডিং)

PHP তে json_encode() ফাংশনটি ব্যবহার করে আপনি একটি অ্যারে বা অবজেক্টকে JSON স্ট্রিং এ রূপান্তর করতে পারেন। json_encode() ইউনিকোড অক্ষরগুলি সঠিকভাবে এনকোড করে, তবে আপনি যদি বিশেষভাবে ইউনিকোড ক্যারেক্টারকে escape করতে চান (যেমন: \uXXXX ফরম্যাটে), তখন JSON_UNESCAPED_UNICODE ফ্ল্যাগ ব্যবহার করতে হবে।

উদাহরণ: JSON Encoding with Unicode

<?php
$data = [
    "name" => "John Doe",
    "message" => "こんにちは、世界!" // Japanese for "Hello, World!"
];

$json = json_encode($data, JSON_UNESCAPED_UNICODE);
echo $json;  // আউটপুট হবে: {"name":"John Doe","message":"こんにちは、世界!"}
?>

এখানে, JSON_UNESCAPED_UNICODE ফ্ল্যাগটি ব্যবহার করা হয়েছে যাতে ইউনিকোড অক্ষরগুলি \u escape ক্যারেক্টারের পরিবর্তে প্রকৃত অক্ষর হিসাবে প্রদর্শিত হয়। যদি আপনি এই ফ্ল্যাগটি না ব্যবহার করেন, তবে JSON স্ট্রিংটি \uXXXX ফরম্যাটে ইউনিকোড অক্ষরগুলো দেখাবে।


২. JSON Decoding with Unicode Characters (Unicode সহ JSON ডিকোডিং)

PHP তে json_decode() ফাংশনটি JSON স্ট্রিংকে PHP অ্যারে বা অবজেক্টে রূপান্তর করতে ব্যবহৃত হয়। json_decode() সাধারণত ইউনিকোড চরিত্রগুলি সঠিকভাবে ডিকোড করে, তবে আপনি যদি ডিকোড করার পর JSON স্ট্রিং এর ইউনিকোড অক্ষরগুলোকে সঠিকভাবে প্রদর্শন করতে চান, তবে আপনাকে কিছু পদ্ধতি অনুসরণ করতে হবে।

উদাহরণ: JSON Decoding with Unicode

<?php
$json = '{"name":"John Doe","message":"こんにちは、世界!"}'; // Japanese for "Hello, World!"

$data = json_decode($json, true);
echo $data['message'];  // আউটপুট হবে: こんにちは、世界!
?>

এখানে, json_decode() স্বয়ংক্রিয়ভাবে ইউনিকোড অক্ষরগুলি সঠিকভাবে ডিকোড করে, এবং $data['message'] এ এটি প্রকৃত "こんにちは、世界!" হিসেবে প্রদর্শিত হয়। আপনি যদি JSON_UNESCAPED_UNICODE ফ্ল্যাগটি ব্যবহার না করেন, তবে JSON স্ট্রিংটি \uXXXX ফরম্যাটে থাকলেও PHP স্বয়ংক্রিয়ভাবে এটি সঠিক অক্ষরে রূপান্তর করবে।


৩. Unicode Escape (Unicode Escape Sequence)

যদি আপনি চান যে ইউনিকোড অক্ষরগুলি escape হওয়া অবস্থায় (যেমন \uXXXX ফরম্যাটে) JSON স্ট্রিং হিসাবে এনকোড হোক, তবে আপনি JSON_UNESCAPED_UNICODE ফ্ল্যাগটি ব্যবহার করবেন না। এভাবে, আপনি JSON স্ট্রিংটি ইউনিকোড escape সিকোয়েন্স হিসেবে পাবেন।

উদাহরণ: Unicode Escape Sequence

<?php
$data = [
    "name" => "John Doe",
    "message" => "こんにちは、世界!" // Japanese for "Hello, World!"
];

$json = json_encode($data);
echo $json;  // আউটপুট হবে: {"name":"John Doe","message":"\u3053\u3093\u306b\u3061\u306f\uff0c\u4e16\u754c\uff01"}
?>

এখানে, ইউনিকোড অক্ষরগুলো escape হয়ে \u3053\u3093\u306b\u3061\u306f\uff0c\u4e16\u754c\uff01 রূপে এনকোড হয়েছে।


৪. UTF-8 Encoding নিশ্চিত করা

আপনি যখন JSON ডেটা এনকোড এবং ডিকোড করছেন, তখন নিশ্চিত করুন যে আপনার PHP স্ক্রিপ্টের ইনপুট এবং আউটপুট ডেটা UTF-8 এনকোডিংয়ে আছে। json_encode() এবং json_decode() শুধুমাত্র UTF-8 এনকোডেড ডেটা সঠিকভাবে প্রক্রিয়া করে। তাই ডেটার ইনপুট বা আউটপুট UTF-8 এনকোডেড কিনা, তা নিশ্চিত করতে হবে।

উদাহরণ: UTF-8 Encoding

<?php
header('Content-Type: application/json; charset=UTF-8'); // UTF-8 Content-Type header

$data = [
    "greeting" => "こんにちは"
];

echo json_encode($data, JSON_UNESCAPED_UNICODE);  // আউটপুট হবে: {"greeting":"こんにちは"}
?>

এখানে, header('Content-Type: application/json; charset=UTF-8') দিয়ে আমরা নিশ্চিত করেছি যে JSON ডেটাটি UTF-8 এনকোডেড থাকবে।


সারসংক্ষেপ

  1. Unicode সহ JSON এনকোডিং: PHP তে json_encode() ফাংশন ব্যবহার করে আপনি ইউনিকোড অক্ষর সঠিকভাবে এনকোড করতে পারেন। JSON_UNESCAPED_UNICODE ফ্ল্যাগ ব্যবহার করলে অক্ষরগুলি \uXXXX escape সিকোয়েন্স ছাড়াই দেখা যাবে।
  2. JSON ডিকোডিং: json_decode() স্বয়ংক্রিয়ভাবে ইউনিকোড অক্ষর সঠিকভাবে ডিকোড করে, এবং আপনি true আর্গুমেন্ট দিয়ে অ্যারে হিসেবে ডেটা নিতে পারেন।
  3. Unicode Escape Sequence: যদি আপনি ইউনিকোড অক্ষরগুলি escape সিকোয়েন্স হিসেবে চান, তবে JSON_UNESCAPED_UNICODE ফ্ল্যাগ ব্যবহার করবেন না।
  4. UTF-8 এনকোডিং নিশ্চিত করা: JSON এনকোডিং এবং ডিকোডিং প্রক্রিয়া সঠিকভাবে কাজ করার জন্য আপনার ডেটা অবশ্যই UTF-8 এনকোডেড হতে হবে।

এভাবে আপনি PHP তে JSON এনকোড এবং ডিকোড করার সময় ইউনিকোড অক্ষরগুলি সঠিকভাবে হ্যান্ডল করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...