Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone

Monede JO 2024

Suprasolicitare sistem electric
 CIV auto import

Mutare in MOZAMBIC - pareri, expe...

Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...
 Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...

Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...
 Kanal D va difuza serialul “...

Upgrade xiaomi mi11

securitate - acum se dau drept - ...

Farmacia Dr Max - Pareri / Sugest...
 

Citire diacritice din fișier resursă C#

- - - - -
  • Please log in to reply
19 replies to this topic

#1
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
Salutări!

Am o aplicație C# WFA cu un fișier .txt integrat ca resursă.
Îmi preiau textul din resursă într-un string, după care schimb encoding-ul pentru diacriticele românești.

string resource_data = Properties.Resources.Qs;
byte[] byteArray = System.Text.Encoding.GetEncoding("iso-8859-1").GetBytes(resource_data);
string convertedLine = System.Text.Encoding.GetEncoding("iso-8859-1").GetString(byteArray);


Din păcate, rezultatul e același. Caracterele românești nu sunt recunoscute, apar "?" sau alte bazaconii.
Am încercat și cu alte encoding-uri.

Cum aș putea prelua corect diacriticele din fișierul resursă?

Mulțumesc!

#2
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
Daca ai deja resource_data ca string, de ce mai transformi? Ce contine resource_data?

Edited by dani.user, 08 July 2019 - 21:56.


#3
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
resource_data conține tot textul (linie cu linie) din fișierul .txt integrat ca resursă.
Textul reprezintă propoziții în limba română.

#4
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
resource_data contine diacriticele?

#5
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
Transform string-ul în bytes pentru că vreau să-mi generez un nou string cu un alt encoding.
Nu pot converti direct din string cu un encoding în string cu alt encoding din câte știu.

View Postdani.user, on 08 iulie 2019 - 22:03, said:

resource_data contine diacriticele?
Hmm..
Nu, conține caractere aiurea în loc de diacritice, bănuiesc că citirea și înmagazinarea informației e făcută din start cu un encoding default, greșit.

Edited by vlad29marko, 08 July 2019 - 22:07.


#6
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
Intrebarea e de ce ai vrea sa schimbi encodingul. String in .NET e mereu UTF-16 care poate contine de toate (nu e ca acum 20 de ani cand trebuia sa alegi intre diacritice romanesti si altceva).

#7
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
Flow-ul e următorul:
- scriu text de la tastatură într-un fișier .txt ce conține caractere românești (totul se vede ok în notepad++ cu encoding UTF-8)
- citesc din acel fișier .txt informația într-un string
- afișez acel string într-un text box => caracterele românești apar eronat

Asta e toată problema.

#8
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
Cum arata codul ce citeste din .txt?

#9
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
string resource_data = Properties.Resources.Qs;


Asta e linia care citește din resură.
"Qs" e numele fișierului.

Edited by vlad29marko, 08 July 2019 - 22:16.


#10
jobist

jobist

    Senior Member

  • Grup: Senior Members
  • Posts: 2,746
  • Înscris: 23.04.2010
Ehee, cât timp le-a trebuit celor de la MS și cât s-au chinuit ca să rezolve diacriticile iar tu vrei așa dintr-o dată? Vrei să-i bați cu sculele lor?

#11
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
De-avem noi diacritice aici, putem s-avem și-n C#, zic. :))

#12
red46

red46

    Senior Member

  • Grup: Senior Members
  • Posts: 4,556
  • Înscris: 06.03.2016
Poți să te folosești direct de "resource_data", fără să mai schimbi encoding-ul.
Salvează fișierul text cu UTF-8 BOM.

Edited by red46, 08 July 2019 - 22:45.


#13
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
Am creat un fisier txt cu diacritice (salvat UTF-8). L-am adaugat ca resursa si l-am citit ca string de acolo. A mers din prima.

Presupun ca nu e ceva in regula cu acel fisier la tine. Ce versiune de Visual Studio/.NET folosesti?

Edited by dani.user, 08 July 2019 - 23:11.


#14
red46

red46

    Senior Member

  • Grup: Senior Members
  • Posts: 4,556
  • Înscris: 06.03.2016
Dacă ai creat fișierul text direct din VS atunci are encoding-ul UTF-8 cu BOM în mod implicit.
Dacă-l salvezi cu UTF-8 fără BOM, într-adevăr, diacriticele nu sunt citite corect.

#15
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011

View Postred46, on 08 iulie 2019 - 22:44, said:

Poți să te folosești direct de "resource_data", fără să mai schimbi encoding-ul.
Salvează fișierul text cu UTF-8 BOM.
O să ĂŽncerc și varianta asta, mulțumesc de sugestie!
Am citit acum despre BOM, nu-i cunoșteam implicațiile.

View Postdani.user, on 08 iulie 2019 - 23:10, said:

Am creat un fisier txt cu diacritice (salvat UTF-8). L-am adaugat ca resursa si l-am citit ca string de acolo. A mers din prima.

Presupun ca nu e ceva in regula cu acel fisier la tine. Ce versiune de Visual Studio/.NET folosesti?
Comportamentul e același și pe MVS 2015 și pe MVS 2017, .Net Framework 4.5.
Bănuiesc că ai salvat diferit fișierul text. Revin acuși cu rezultate la soluția colegului.

Funcționează corect dacă fișierul e salvad cu encoding UTF8-BOM, ĂŽntr-adevăr.
Mulțumesc frumos, apreciez eforturile voastre!

Edited by MarianG, 09 July 2019 - 17:55.
removed deleted quote


#16
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
@MarianG
Vezi că după editare mi-ai stricat și tu diacriticele din ultimul mesaj! :)))
Am mai pățit-o și eu după edit, de ce se întâmplă asta?

#17
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
Bug al forumului, de ceva timp.

#18
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,440
  • Înscris: 10.08.2005

View Postvlad29marko, on 09 iulie 2019 - 18:15, said:

@MarianG
Vezi că după editare mi-ai stricat și tu diacriticele din ultimul mesaj! Posted Image))
Am mai pățit-o și eu după edit, de ce se întâmplă asta?
pentru ca forumul strica mesajul in full editor

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate