Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Koji skup karaktera da se primeni na bazu?

[es] :: MySQL :: Koji skup karaktera da se primeni na bazu?

[ Pregleda: 2358 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
109.93.138.*

Sajt: biske.rs


+39 Profil

icon Koji skup karaktera da se primeni na bazu?12.03.2010. u 15:36 - pre 171 meseci
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.
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Koji skup karaktera da se primeni na bazu?12.03.2010. u 17:54 - pre 171 meseci
Iz nekog razloga nisam lepo prikazao sliku u ovoj temi. Evo direktnih linkova pa pogledajte:




 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Koji skup karaktera da se primeni na bazu?12.03.2010. u 18:41 - pre 171 meseci
Code:

...useUnicode=true&characterEncoding=UTF-8


dakle - obavezno VELIKIM slovima UTF-8 (ne pitaj me zasto, svaki put mi dodje da odem da im slomim noge)

dodatno please dodaj useServerPrepStmts=false posto ako je na true (default) ne radi bas kako treba.


 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
91.150.125.*

Sajt: biske.rs


+39 Profil

icon Re: Koji skup karaktera da se primeni na bazu?13.03.2010. u 12:57 - pre 171 meseci
Uradio sam kako kažeš ali nije uspelo ista situacija. Ja i dalje mislim da skup karaktera u pitanju.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Koji skup karaktera da se primeni na bazu?13.03.2010. u 15:24 - pre 171 meseci
najverovatnije u tom doc-u ove fonetske karaktere imas samo kao zaseban font tako da ascii karakter @ u fontu "arial" izgleda kao majmun, a u fontu "fonetika" izgleda kao to obrnuto e .. a posto ti ne mozes da sacuvas font u mysql ti sacuvas ascii znak ... na zalost tu ti mysql nece pomoci posto je to "pogresan fajl" - na zalost jedini nacin je da napravis neki konvertor koji ce da za odredjeni font (to valjda moz da procitas iz rtf-a) da transkribuje te karakjtere u njihovu utf8 varijantu

dakle u rtf-u pise nesto tipa

ovo je majmun <font arial>@</font>
ovo je obrnuto e <font nesto>@</font>

nema veze sa karakter setovima, ti imas ASCII vrednost @ .. ono sto je rtf primenio nije karakter set vec samo druga slika tog istog ascii znaka
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
109.93.115.*

Sajt: biske.rs


+39 Profil

icon Re: Koji skup karaktera da se primeni na bazu?13.03.2010. u 16:02 - pre 171 meseci
Probacu tako nesto da odradim.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Koji skup karaktera da se primeni na bazu?13.03.2010. u 16:13 - pre 171 meseci
proveri prvo da li je to u pitanju .. dakle obelezi ceo doc i selektuj mu neki obican font (arial) .. i ako se pojave @ i kuke umesto fonetskih znaka - sve ti je jasno ...

 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Koji skup karaktera da se primeni na bazu?13.03.2010. u 17:35 - pre 171 meseci
Tako je. Trenutno mi prikazuje obrnuto slovo e a kada primenim na njega font Arial onda mi prikazuje slovo @.

Znači ti mi predlažeš da ubacim u bazu ovakve karaktere kakvi jesu tj. da umesto obrnutog e stoji @. To znači da kasnije kad napravim prozor u javi da na njemu za ta slova primenim odgovarajući font. Molim te potvrdi mi ovo da budem siguran.

Hvala ti..
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Koji skup karaktera da se primeni na bazu?13.03.2010. u 18:19 - pre 171 meseci
Citat:
biske86
Znači ti mi predlažeš da ubacim u bazu ovakve karaktere kakvi jesu tj. da umesto obrnutog e stoji @.


ne, to nije nikako ono sto ti predlazem. samo sam ti rekao sta ti je problem i da ti je problem programski a ne vezan za mysql.

ako te karaktere ubacis u bazu kao @ kako ces znati za prikaz da "baz taj @ treba a prikazes fontom X a ne fontom Y" ??

ja ovako na brzaka vidim samo par resenja

1. "seljacko" resenje
da uzmes i u bazu upises i font na neki nacin tako da u bazi stoji nesto tipa

"kuku<special>{</special>rik<special>@</special>"

kapiram da mozes iz tog rtf-a da vadis koji je font koje slovo i onda za svako slovo je je tim "fonetskim" fontom njega uokviris tako u neki tag ....

2. "udri me do zore" resenje
ovo resenje je da uzmes i napravis translation matrix tako da za svaki karakter pisan fonetskim fontom upises u bazu validni utf8 karakter za taj znak. ovo ce na duze staze biti mnogo bolje resenje

3. "pravo resenje"
vratis taj rtf onome ko ga je pisao uz link na to sta je unicode i trazis da ti vrate to u normalnom formatu sa unicode karakterima
 
Odgovor na temu

tarla

Član broj: 15527
Poruke: 1648



+42 Profil

icon Re: Koji skup karaktera da se primeni na bazu?13.03.2010. u 18:45 - pre 171 meseci
Muke moje niko ne znaaaaa.....

U Javi sam manje više početnik i skoro sam imao rovovsku borbu sa "našim" karakterima... Uglavnom nisam znao da to treba velikim slovima UTF :). Problem sa riješio tako što sam prvo pobjesnio a onda prepravio sve jedan fajl u kome se spominjao enkoding i sve stavio na UTF-8. Ni sam ne znam koja fora je upalila :(

Da skratim priču evo malo detalja od lika koji se ispekao

http://stackoverflow.com/quest...-utf-8-working-in-java-webapps


 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
*.static.isp.telekom.rs.

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Koji skup karaktera da se primeni na bazu?23.03.2010. u 09:16 - pre 171 meseci
Evo članak na wikipediji: Unicode Phonetic Symbols
Ako budeš rešio programski da popravljaš, srećno. Pošto kad pogledam .rtf iz Notepad++ izgleda dosta komplikovano.

Takođe, to može i iz worda da se zamenjuje:
ctrl+h
alt+m
u Find what copy/paste stari ipa karakter, dole klikni na Format > Font pa odaberi taj IPA font. OK
u Replace with copy/paste ispravan unicode ipa karakter sa wikipedija stranice, dole klikni na Format > Font pa odaberi isti font koji koristi normalan text (Ariel ili štagod)
Replace All

Uglavnom, menjanje u unicode će morati jednom da se uradi. Da li će to sada, kroz godinu dana, ili kad bude se pojavio još neki problem, na tebi je da odlučiš (ili tvom poslodavcu). Da li ćeš to ti menjati, onaj ko ti je dao dokument ili neki praktikant, opet nije važno. Ali bolje je to sada da pošteno uradiš nego kasnije kad se pojave još neki problemi zbog toga što IPA nije unicode u bazi.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Koji skup karaktera da se primeni na bazu?24.03.2010. u 00:26 - pre 171 meseci
Najbolja varijanta bi bila da može iz vorda da se zamenjuje pošto bih tada dao poslodavcu uputstvo kako da uradi da se ne bih cimao sa takvim stvarima da gubim vreme. On bi mogao da odradi to dok ja odradim interfejs za rečnik.

Možeš li da mi pojasniš ovo oko Find/Replace?
Uradio sam ovo kao što kažeš, iskopirao sam jedan karakter iz vord fajla na primer karakter spojeno "ae". On se u dijalogu Find/Replace ne prikazuje ovako već kao {. Onda stavim font da je TimesPhoneticIPA.
Kada odem na Find on mi nalazi u vord fajlu karakter koji treba tj. u ovom slučaju spojeno "ae".

Zatim odem da iskopiram sa vikipedije karakter spojeno "ae" i ubacim ga u polje Replace ali se prikazuje kockica umesto karaktera. Za polje Replace sam izabrao font Arial.

U čemu je moja greška?

U prilogu se nalazi dokument sa uzorkom od nekoliko reči i dva fonta koja trebaju da se instaliraju. Da li možeš da probaš da odradiš svoju zamisao? Meni trenutno ne uspeva.
Prikačeni fajlovi
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
*.static.isp.telekom.rs.

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Koji skup karaktera da se primeni na bazu?24.03.2010. u 07:42 - pre 171 meseci
Eee, al nemoj da koristiš onu gornju tabelu pod Blocks, nego ono ispod gde su posebno Consonants a posebno Vocals. Sad kad ja probam ono gore i meni pokazuje samo kockice, ali kad kopiram iz Consonants i Vocals prikazuje kako treba. Moguće da je zato što su gornja slova formatirana kao za font "Segoe UI" a donja nemaju zadan font.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
109.93.153.*

Sajt: biske.rs


+39 Profil

icon Re: Koji skup karaktera da se primeni na bazu?24.03.2010. u 09:49 - pre 171 meseci
Isprobao sam sad na brzinu za spojeno ae i radi. Uh presrećan sam. Samo ako radi za sve karaktere i biće odlično. Hvala ti čovek, dužnik sam ti..
 
Odgovor na temu

[es] :: MySQL :: Koji skup karaktera da se primeni na bazu?

[ Pregleda: 2358 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.