Base64 এনকোডিং ব্যবহার করে স্ট্রিং এনকোড করা
Android-এ android.util.Base64 ক্লাস ব্যবহার করে যেকোনো স্ট্রিং বা বাইট অ্যারে Base64 ফরম্যাটে এনকোড করা যায়। এটি ডেটা ট্রান্সমিশন, স্টোরেজ বা URL-এ সেফলি পাস করার জন্য ব্যবহৃত হয়।
লেআউট (activity_main.xml)
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_marginTop="30dp"
android:padding="16dp"
tools:context=".MainActivity">
<EditText
android:id="@+id/edit_query"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="এনকোড করার টেক্সট লিখুন" />
<Button
android:id="@+id/buttonPanel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Encode"
android:layout_marginTop="16dp" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_marginTop="16dp"
android:padding="16dp"
android:background="#F5F5F5" />
</LinearLayout>
MainActivity.java
package com.example.myapplication;
import android.os.Bundle;
import android.util.Base64;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
TextView textView;
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.edit_query);
textView = findViewById(R.id.text);
findViewById(R.id.buttonPanel).setOnClickListener(v -> {
String input = editText.getText().toString();
if (!input.isEmpty()) {
// String → Byte Array → Base64 String
String encoded = Base64.encodeToString(
input.getBytes(java.nio.charset.StandardCharsets.UTF_8),
Base64.DEFAULT
);
textView.setText("Encoded:\n" + encoded);
} else {
textView.setText("টেক্সট লিখুন");
}
});
}
}
Base64 ফ্ল্যাগ অপশনসমূহ
| ফ্ল্যাগ | বিবরণ |
|---|---|
| DEFAULT | স্ট্যান্ডার্ড Base64 (RFC 4648), লাইন ব্রেক যোগ করে ৭৬ ক্যারেক্টারের পর |
| NO_WRAP | লাইন ব্রেক ছাড়া (URL, JSON, Header-এ ব্যবহারের জন্য) |
| URL_SAFE | URL-সেফ: + → -, / → _, প্যাডিং = বাদ |
| NO_PADDING | প্যাডিং (=) বাদ দেয় |
সাধারণ ব্যবহার ক্ষেত্রে
- Basic Auth Header: "username:password" → Base64 → "Authorization: Basic ..."
- Image to String: Bitmap → ByteArray → Base64 → JSON/SQLite সংরক্ষণ
- Data URI: "data:image/png;base64," + encodedString
- Intent Extra: জটিল অবজেক্ট সিরিয়ালাইজ করে পাস করার সময়
ডিকোডিং (Decode) - বিপরীত প্রক্রিয়া
String encoded = "SGVsbG8gV29ybGQ=";
byte[] decodedBytes = Base64.decode(encoded, Base64.DEFAULT);
String original = new String(decodedBytes, StandardCharsets.UTF_8); // "Hello World"
