ここから本文です

[JSPについて]Web上でテキストデータをエンコードUTF-8でテキストの中のデータの削...

chi********さん

2007/12/313:56:48

[JSPについて]Web上でテキストデータをエンコードUTF-8でテキストの中のデータの削除を行いたいんですが、エンコードがANSIなら削除できるんですが、UTF-8だと削除ができず、エラーが出てしまうのはなぜでしょうか

セレクトで選んだデータをJSPに送って削除したいです
↓JSP↓
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.io.*,java.util.*,java.lang.*" %>
<%
request.setCharacterEncoding("UTF-8");
String S_ken = request.getParameter("sakuzyo");
int ken=Integer.parseInt(S_ken);
String temp;
StringTokenizer tkn;
String[] data = new String[5];
String keido,ido,tk;
int ke,id,j=0;

FileReader fr=new FileReader(application.getRealPath("data.txt"));
BufferedReader br=new BufferedReader(fr);
String[] str = new String[100];
int count=0;
while(br.ready()){
temp=br.readLine();
tkn=new StringTokenizer(temp,",");
data[0] = tkn.nextToken();
data[1] = tkn.nextToken();
data[2] = tkn.nextToken();
data[3] = tkn.nextToken();
data[4] = tkn.nextToken();
if(count==ken){
}else{
str[j]=data[0]+","+data[1]+","+data[2]+","+data[3]+","+data[4];
j++;
}
count++;
}
br.close();
int a=0;
FileWriter fw=new FileWriter(application.getRealPath("data.txt"));
BufferedWriter bw=new BufferedWriter(fw);
while(j!=a){
bw.write(str[a].toString());
bw.newLine();
a++;
}
bw.close();
response.sendRedirect("../chizu.htm");
%>


・データ(data.txt)の内容↓
130.8132867622833,33.86722308307554,イオン,八幡,ショッピング
130.8841788863476,33.88498474127357,ナチュカフェ,小倉,食事
130.88455436815866,33.88371098910487,アミュ,小倉,ショッピング
130.8107759421838,33.86583329606465,命のたび博物館,八幡,博物館

この、data.txtをエンコードANSIで保存すると上のJSPでデータの削除できるんですが、data.txtをエンコードUTF-8で保存するとJSPがエラーが出てデータの削除ができません。
どうしてもテキストデータをエンコードUTF-8で保存してデータの削除をしたいんです。
大学の卒業制作が進まず困っています。よろしくお願いしますm(_ _)m

閲覧数:
2,201
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

tai********さん

2007/12/315:23:30

OSなどの環境や、エラー内容の詳細がほしいところですが、ソースから察するに
FileReaderクラスで読み込んでいるのが原因かなと。

FileReaderクラスでは、システムのデフォルト文字コード(WindowsならSJIS)で読みにいくので、
それのせいかな?

なので、↓のように文字コードを指定して読み込みます。お試しあれ。

InputStreamReader objIsr=new InputStreamReader(
new FileInputStream(application.getRealPath("data.txt")),"UTF-8");
BufferedReader objBr=new BufferedReader(objIsr);

参考サイト: テキストファイルの入出力でさまざまな文字コードを扱う
http://www.atmarkit.co.jp/fjava/javatips/022jspservlet013.html

質問した人からのコメント

2007/12/3 16:10:48

感謝 taiwan_neko1970さん、早速回答ありがとうございます!!
解決しました!!
これで卒業制作が進みそうですvv
ありがとうございましたm(_ _)m

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる