[ biske86 @ 12.03.2010. 15:36 ] @
Počeo sam da radim neki rečnik i dobio sam reči u .rtf formatu. Rečnik je srpsko-engleski i englesko-srpski. Napravio sam java program koji mi izima reči iz dokumenta i smešta ih u mysql bazu. Evo koda: Code: import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.extractor.WordExtractor; public class NewDocReader { public static void main(String args[]) throws FileNotFoundException, IOException { File docFile=new File("c:\\multi\\multi.doc"); // file object was created FileInputStream finStream=new FileInputStream(docFile.getAbsolutePath()); // file input stream with docFile HWPFDocument doc=new HWPFDocument(finStream);// throws IOException and need to import org.apache.poi.hwpf.HWPFDocument; WordExtractor wordExtract=new WordExtractor(doc); // import org.apache.poi.hwpf.extractor.WordExtractor String [] dataArray =wordExtract.getParagraphText(); // dataArray stores the each line from the document int pozicijaBlankoMesta; for(int i=0;i<dataArray.length;i++) { pozicijaBlankoMesta=dataArray[i].indexOf(" "); String SrpskaRec=dataArray[i].substring(0, pozicijaBlankoMesta); String EngleskiPrevodSaEnter=dataArray[i].substring(pozicijaBlankoMesta+1,dataArray[i].length()-1); String EngleskiPrevod=EngleskiPrevodSaEnter.replaceAll("\r", ""); int broj=i+1; try{ Class.forName("com.mysql.jdbc.Driver"); Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/recnik?useUnicode=true&characterEncoding=utf-8","root","korisnik"); Statement stmt=conn.createStatement(); String sqlStr="insert into reci (id, srpska, engleska) values ("+broj+ ",'"+SrpskaRec+"', '"+EngleskiPrevod+"')"; stmt.executeUpdate(sqlStr); stmt.close(); conn.close(); } //kraj try bloka catch (ClassNotFoundException ex) { ex.printStackTrace(); }//kraj od ClassNotFoundException catch (SQLException ex) { ex.printStackTrace(); }//kraj od SQLException //kraj try dela } finStream.close(); //closing fileinputstream } } Obratite pažnju da sam stavio sledeći kod u konekcionom stringu: Code: "jdbc:mysql://localhost/recnik?useUnicode=true&characterEncoding=utf-8","root","korisnik" U početku sam nisam stavio deo useUnicode=true&characterEncoding=utf-8 i nisu mi se ispravno ubacivali naši karakteri. Posle sam ubacio ovo u kod i onda mi se sada ispravno ubacuju podaci u bazu. U phpmyadmin mi stoji sa sortiranje za mysql vezu utf-general-ci a takođe sortiranje za svaku tabelu je utf-general-ci. Isto je i sa skupom karaktera za bazu u koju ubacujem reči i ona je u skupu karaktera utf-general-ci. Problem koji imam je sledeći. Kada hoću da ubacim englesko-srpske reči ne ubacuju se dobro karakteri koji označavaju izgovor engleske reči. One su formatirane preko "times phonetic ipa" i "times phonetic alternate" i ti karakteri mi se ne ubaciju dobro. Evo i slike rtf dokumenta koji pokazuju o kojim karakterima se radi: ![]() A evo i kako to izgleda u bazi: ![]() Interesuje me koji skup karaktera je potrebno da primenim na bazi pa da mi se ispravno ubacuju i ovi karakteri. |