परिचय
यह ट्यूटोरियल दिखाता है कि Android में URL एन्कोडिंग कैसे करें। स्पेशल कैरेक्टर्स (स्पेस, हिंदी टेक्स्ट, सिम्बल्स) को URL-सेफ फॉर्मेट में बदलने के लिए URLEncoder क्लास का उपयोग करते हैं।
आवश्यक चरण
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project से नया प्रोजेक्ट बनाएं।
चरण 2: लेआउट फ़ाइल (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:padding="4dp"
tools:context=".MainActivity">
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<Button
android:id="@+id/btnEncode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="URL लोड करें"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
चरण 3: मुख्य गतिविधि (src/MainActivity.java)
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.Toast;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class MainActivity extends AppCompatActivity {
Button button;
private WebView webView;
String strURL;
private String query;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.webView);
button = findViewById(R.id.btnEncode);
strURL = "https://stackoverflow.com/search?q=";
try {
// क्वेरी स्ट्रिंग एन्कोड करें
query = URLEncoder.encode("android drawables", "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
strURL += query;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// पेज लोड शुरू
}
@Override
public void onPageFinished(WebView view, String url) {
Toast.makeText(getApplicationContext(), "पेज लोड हो गया", Toast.LENGTH_SHORT).show();
}
});
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(strURL);
}
});
}
}
चरण 4: मैनिफेस्ट फ़ाइल (AndroidManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ऐप चलाएं
डिवाइस कनेक्ट करें, Run क्लिक करें। "URL लोड करें" बटन दबाएं - एन्कोडेड URL के साथ StackOverflow खुलेगा।

URL एन्कोडिंग के मुख्य बिंदु
URLEncoder.encode(String, "UTF-8")- स्ट्रिंग को URL-सेफ बनाता है। स्पेस →+या%20।- केवल क्वेरी पैरामीटर वैल्यू एन्कोड करें, पूरा URL नहीं।
UnsupportedEncodingExceptionचेक्ड एक्सेप्शन है - try-catch जरूरी।- डिकोडिंग के लिए:
URLDecoder.decode(String, "UTF-8")।
उदाहरण
String query = "हिंदी टेक्स्ट & स्पेशल!"; String encoded = URLEncoder.encode(query, "UTF-8"); // परिणाम: "%E0%A4%B9%E0%A4%BF%E0%A4%82%E0%A4%A6%E0%A5%80+%E0%A4%9F%E0%A5%87%E0%A4%95%E0%A5%8D%E0%A4%B8%E0%A5%8D%E0%A4%9F+%26+%E0%A4%B8%E0%A4%AA%E0%A5%87%E0%A4%B6%E0%A4%B2%21"
आधुनिक विकल्प
- OkHttp HttpUrl - बिल्डर पैटर्न से स्वचालित एन्कोडिंग।
- Retrofit @Query - ऑटोमैटिक एन्कोडिंग।
- Uri.Builder - Android बिल्ट-इन, क्वेरी पैरामीटर जोड़ते समय एन्कोड करता है।
// Uri.Builder उदाहरण
Uri uri = new Uri.Builder()
.scheme("https")
.authority("example.com")
.appendPath("search")
.appendQueryParameter("q", "हिंदी टेक्स्ट") // ऑटो एन्कोड
.build();