PDA

View Full Version : سوال: مشکل ارسال عبارت فارسی در فرم html



laughing
پنج شنبه 28 مرداد 1389, 14:42 عصر
مشکل با پارامتر method با ارزش post
در اجرای برنامه زیر اگر در textfield عبارت فارسی تایپ کنیم در هنگام چاپ فارسی را درست چاپ نمی کند.
ولی اگر ارزش method را به get تغییر دهیم. فارسی را درست چاپ می کند.
اگر کسی راه حلی می شناسد که بتوان با post عبارت فارسی را ارسال کرد لطفا معرفی نماید.
با تشکر



<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>

<h2>Hello World!</h2>
<%= request.getParameter("name") %>
<form action="index.jsp" method="POST">
<input type="text" name="name" value="" />

<input type="submit" value="show" />
</form>
</body>
</html>

mohsen215
پنج شنبه 28 مرداد 1389, 17:07 عصر
آیا index .jsp به صورت utf8 ذخیره کردی

laughing
شنبه 30 مرداد 1389, 10:58 صبح
اگر منظورتان عبارت زیر است که در کد قرار دارد.

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
برای get در فرم html فارسی را درست چاپ می کند ولی برای post فارسی را درست چاپ نمی کند.
اگر زحمتی نیست کد بالا را در کامپیوتر خودتان چک کنید.

laughing
دوشنبه 01 شهریور 1389, 21:18 عصر
راه حلش را پیدا کردم
کافی است در صفحه ای که می خواهید ارسال انجام دهید عبارت زیر را بنویسید.
و اگر در سرولت خودتان هم ارسال فارسی انجام می دهید عبارت را بنویسید.

request.setCharacterEncoding("UTF-8");

موفق باشید:لبخندساده:

behrooj
سه شنبه 02 شهریور 1389, 18:51 عصر
پیشنهاد می‌کنم از راه‌حل مبتتی بر Filter استفاده کنید که بهتره؛ به طور مثال:
http://tompson.wordpress.com/2007/01/29/encoding-filter-for-java-web-applications/
http://www.javafaq.nu/java-example-code-235.html

این طوری معماری بهتری هم دارید که مستقل از صفحاته.

jReihane
یک شنبه 07 شهریور 1389, 19:30 عصر
سلام،
به طور كلي هر مقداري كه مي خوايد چاپ كنيد رو به اين صورت تعريف كنيد:

new String(yourStringValue.getBytes('utf-8'),'utf-8')