Jump to content

Encodinga problēma pievienojot datus datubāzei no Netbeans


Hinatara
 Share

Recommended Posts

Laba diena!

 

Pašlaik veidoju programmu, kura veidotu datubāzi bibliotēkām. 

Datubāze ir online free mysql datubāze, kura izmanto phpmyadmin.co administrēšanu manuālām darbībām.... Visas tabulas ir veiksmīgi pievienotas, collation uzlikts uz utf8_general_ci tabulām un datubāzei, bet vajadzīgajiem varchar fieldiem uzlikts utf_latvian_ci. Manuālā pievienošanā caur admin profilu, izmantojot sql, problēmas nerodas un visas garumzīmes un mīkstinājuma zīmes tiek saliktas pareizi.

Mēģinājumā pievienot datus caur Netbeans, izmantojot executeUpdate(), datubāzē tiek pievienota jauns ieraksts, bet garumzīmju un mīkstinājuma zimju vietā parādās "?"...

Kā to varētu risināt? Esmu pievienojusi -J-Dfile.encoding=UTF-8 rindu netbeans.config failā, kā bija ieteikts vienā no forumiem, bet tas nepalīdz atrisināt problēmu.

 

Varbūt kādas idejas no clvēkiem, kuriem ir sapratne par to, kas ir latviešu valoda? :)

Link to comment
Share on other sites

Ko nozīmē "Pievienot datus caur NetBeans"? Vai to, ka Tu izmanto NetBeans IDE iebūvētu rīku, kas ļauj strādāt ar DB, vai arī Tu esi, izmantojot NetBeans, uzrakstījusi Javas programmu, kura mēģina kaut ko ielikt DB?

 

Jebkurā gadījumā, vispirms izlasi šo rakstu. Ja labi saproti angliski, tad iesaku lasīt oriģinālu (tur tulkojumā ir links uz to).

 

Pēc tam jāsāk ar pirkstu vilkt līdzi, no tās vietas, kur ievada stringu, līdz DB laukam, un jāskatās, kurā vietā to stringu kāds mēģina pārtaisīt uz nepareizu kodējumu. 

Link to comment
Share on other sites

Hinatara
(labots)

Pievienot datus caur NetBeans =  datubāze ir pievienota pie Databases, kas ir zem Services, pie Library pievienots jar fails ar mysql driver, connection ir izveidots, statements ir izveidots, statement.executeUpdate(...) uzrakstīts un ejošs. Respektīvi, programmēju javā, izmantojot Netbeans un cenšos ielikt datus datubāzē izmantojot ievadītos datus no UI, kas tiek caur controller un commands nosūtīti uz attiecīgo metodi, kura satur executeUpdate() attiecīgajai tabulai.

Par Unicode mazliet zinu, ir sanācis programmēt mājaslapas, izmantojot Notepad, kā arī ir strādāts ar clicdev.com admin paneli, kurā visu tulkoju uz latviešu valodu... Bet mana galva domā, ka java tomēr ir savādāka par html...

Bet paldies par linku :) Brīvi lasu angliski :)

 

Edit: Izmēģināju ielikt Unicode charu ("\u012B") "ī" vietā... System.out.println() parāda, ka tur ir "ī" , bet izmantojot executeUpdate() datubāzē vēl joprojām parādās "?" zīme "ī" vietā.... :(

Labots - Hinatara
Link to comment
Share on other sites

zeratuls

c# man palīdzēja update kverijam pielikt N burtu.

Varbūt šeit arī tāds joks kaut kur koda ies cauri.

Link to comment
Share on other sites

Hinatara: kāds ir mysql DB default CHARSET un COLLATE ?

 

 

zeratul: tu ar savām "programmētāja" zināšanām nu gan lūdzu izvairies vēl pāris gadus cilvēkiem padomus dot.... Ir drusku jābūt arī paškritikai jopt...

Link to comment
Share on other sites

Mezavecis

Kāds ir datu avots un kur tu vadi iekšā datus? Ar javu ir tā, ka konsolē un citās vietās būs problēma ar garumzīmēm. Lai viss būtu korekti, jālasa ir no faila, formas, DB, kur datu avots ir vai tiek konvertēts unikodā. Ar mistiskajiem simboliem garumzīmju vietā čiks vien iznāks. Arī NetBeans nav paredzēts multivalodu supportam. 

Labots - Skrandainais
Link to comment
Share on other sites

Hinatara

:) SOLVED :)

 

Paldies visiem, kas palīdzēja, un arī tiem, kuri centās palīdzēt!  :drinks:

Link to comment
Share on other sites

Hinatara: solīdais tonis jebkurā tehniskā forumā ir padalīties kas īsti bija par vainu un kas palīdzēja ?

Link to comment
Share on other sites

Hinatara

Problēma: ļoti vienkārša - Netbeans, uzsākot connection izmantoja savu default encoding, nevis utf-8...

Risinājums: "?useUnicode=yes&characterEncoding=UTF-8" pievienošana pēc database name connection veidošanā atrisināja problēmu.

(t.i. Connection con = DriverManager.getConnection(url+dbName+encoding,username,password);)

 

Secinājums: mūsu programmēšanas skolotājs ir aizmirsis pāris svarīgas lietas, runājot par Netbeans pamatiem un principiem... Google toties var atrast jebkādu problēmas risinājumu, jo vienmēr būs kāds cilvēks pirms tevis, kuram ir bijusi līdzīga problēma...

 

Cerams, ka tas apraksta visu, ko gribējāt zināt ;)

Link to comment
Share on other sites

oki,paldies. Pats plānoju apskatīes NetBeans , bija vēlme nekāpt uz zināmiem grābekļiem.

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...