🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.pl.comp.lang.csharp
10 messages
10 total messages Started by qaz Tue, 15 Feb 2011 08:33
czego znowy nie wiem ? [ogonki]
#22040
Author: qaz
Date: Tue, 15 Feb 2011 08:33
29 lines
2037 bytes
Mam tak:
bazę lokalną z tabelami .dbf (code page 1250)
bazę MySQL w necie
i dwa przypadki, w obu z dbf-ów czytam via 
[connectionString="Provider=VFPOLEDB.1;Data Source=G:\ASA;Collating 
Sequence=POLISH"]
 do DataSeta i adapterów i teraz:
1. łączę się ze zdalną bazą  [using MySql.Data.MySqlClient], otwieram 
połączenie, wykonuję polecenia sql (delete, insert) -> skryp PHP z 
kodowaniem charset=iso-8859-2 wyświetla poprawnie ogonki
2. zamiast wykonywania poleceń sql tworzę tekstowy plik( w C#)
using (StreamWriter oFsql = File.CreateText("plik.txt"))
i wpisuję do niego szereg poleceń sql:
...
string sBuf = "INSERT INTO tabelka( col1, col2) VALUES( 'Liść', 'Żołędź' )";
oFsql.WriteLine(sBuf);
...
oFsql.Close();

Wysyłam go na serwer, dopisuję skrypt PHP, który wczytuje plik.txt linia po 
linii i wykonuje polecenia, zamiast polskich liter mam krzaki.

Cała zabawa po to, by skrócić transmisję do serwera (wolne połączenie), 
plik.txt przerabiam na .plik.gz


-- 
pzdr
    qaz 
Re: czego znowy nie wiem ? [ogonki]
#22041
Author: Łukasz 'Maly' Ostrowski
Date: Tue, 15 Feb 2011 09:20
20 lines
1470 bytes
On Tue, 15 Feb 2011 09:33:14 +0100, qaz wrote:
> <snip>
> Wysyłam go na serwer, dopisuję skrypt PHP, który wczytuje plik.txt linia po 
> linii i wykonuje polecenia, zamiast polskich liter mam krzaki.
> <snip>

Oczywiście PHP ładuje ten plik jako UTF-8, pomimo że brak 
tam domyślnie BOM? A nawet jeżeli ten znacznik będzie
to PHP ma AFAIR upośledzoną obsługę UTF, więc pewnie 
dalej będa szopki.

.NET: zmień encoding tego pliku na coś co PHP zrozumie 8-D.
lub:
PHP: pokombinuj z utf8_decode/utf_encode...

Ta, php to zawsze było rzeźbienie w gównie ;-).

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.eu/
Re: czego znowy nie wiem ? [ogonki]
#22042
Author: Macko
Date: Tue, 15 Feb 2011 10:07
4 lines
1367 bytes
> Ta, php to zawsze było rzeźbienie w gównie ;-).

Heh, ludzie to lubią sobie utrudniać życie programowaniem w takim
badziewiu :)
Re: czego znowy nie wiem ? [ogonki]
#22043
Author: qaz
Date: Tue, 15 Feb 2011 13:26
11 lines
1479 bytes
Użytkownik "Łukasz 'Maly' Ostrowski" <maly@USUNnemo.pl> napisał w wiadomości 
news:1bunum7d0115h$.sltuo6oan196$.dlg@40tude.net...

> .NET: zmień encoding tego pliku na coś co PHP

Może trochę szczegółów (przykład) - ja jednak jeszcze raczkuję w .net

-- 
pzdr
    qaz 
Re: czego znowy nie wiem ? [ogonki]
#22044
Author: Macko
Date: Tue, 15 Feb 2011 13:38
19 lines
1809 bytes
On 15 Lut, 14:26, "qaz" <qazvox...@wp.pl> wrote:
> Użytkownik "Łukasz 'Maly' Ostrowski" <m...@USUNnemo.pl> napisał w wiadomościnews:1bunum7d0115h$.sltuo6oan196$.dlg@40tude.net...
>
> > .NET: zmień encoding tego pliku na coś co PHP
>
> Może trochę szczegółów (przykład) - ja jednak jeszcze raczkuję w .net

Prąciem bardzo:

using (TextWriter tw = new StreamWriter("nazwa.pliku", false,
Encoding.Default))
{
 tw.WriteLine("insert cos tam");
}

>
> --
> pzdr
>     qaz
Re: czego znowy nie wiem ? [ogonki]
#22045
Author: qaz
Date: Tue, 15 Feb 2011 13:46
10 lines
1377 bytes
using (TextWriter tw = new StreamWriter("nazwa.pliku", false, 
Encoding.Default))
{
 tw.WriteLine("insert cos tam");
}


Dzięki, jeszcze małe oświecenie "Encoding.Default" - co zrobi ?
qaz 
Re: czego znowy nie wiem ? [ogonki]
#22046
Author: Łukasz 'Maly' Ostrowski
Date: Tue, 15 Feb 2011 14:42
24 lines
1743 bytes
On Tue, 15 Feb 2011 14:46:18 +0100, qaz wrote:
> Dzięki, jeszcze małe oświecenie "Encoding.Default" - co zrobi ?

Encoding.Default zwróci domyślny Encoding - tzn encoding
aktywny aktualnie w systemie. I przekaże tenże do
StreamWritera jako obowiązujący.

IMO lepiej wybrać sobie jakiś konkretny encoding,
niż polegać na "zmiennym" systemowym ustawieniu,
wyeksportujesz u znajomego chińczyka i się
w php nie otworzy poprawnie, yet again ;-).

Hint:
Encoding.Unicode
new UTF8Encoding(true) - zwróci UTF8 ale z sygnaturą
  BOM.
Encoding.GetEncoding("iso-8852-2")

Te ludzkie formaty MUSI się dać JAKOŚ odczytać 
w PHP. ;-).

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.eu/
Re: czego znowy nie wiem ? [ogonki]
#22047
Author: yamma
Date: Tue, 15 Feb 2011 14:46
20 lines
1681 bytes
qaz wrote:
> using (TextWriter tw = new StreamWriter("nazwa.pliku", false,
> Encoding.Default))
> {
> tw.WriteLine("insert cos tam");
> }
>
>
> Dzięki, jeszcze małe oświecenie "Encoding.Default" - co zrobi ?

Zapisze ci tekst w UTF-8. Jeśli chcesz zakodować w ISO-8859-2 to przed 
zapisem do strumienia musisz przekonwertować:

string sql = "INSERT INTO...";
byte[] bsql = Encoding.Default.GetBytes(sql);
Encoding iso = Encoding.GetEncoding("ISO-8859-2");
string isosql = e.GetString(bsql);
tw.WriteLine(isosql);

yamma 
Re: czego znowy nie wiem ? [ogonki]
#22048
Author: Łukasz 'Maly' Ostrowski
Date: Tue, 15 Feb 2011 15:39
24 lines
1784 bytes
yamma wrote:
> qaz wrote:
>> using (TextWriter tw = new StreamWriter("nazwa.pliku", false,
>> Encoding.Default))
>> <snip>
> 
> Zapisze ci tekst w UTF-8. Jeśli chcesz zakodować w ISO-8859-2 to przed 
> zapisem do strumienia musisz przekonwertować:

Stanowczo lepiej jest jednak zmusić StreamWriter
żeby sie zajął przekodowaniem z CLRowego Unicode...

> string sql = "INSERT INTO...";
> byte[] bsql = Encoding.Default.GetBytes(sql);
> Encoding iso = Encoding.GetEncoding("ISO-8859-2");
> string isosql = e.GetString(bsql);
> tw.WriteLine(isosql);

...zamiast rzeźbic. Chyba że woli Kolega rzeżbic, to
wtedy BinaryWriter i pchać tam byte[] ;-).

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.eu/
Re: czego znowy nie wiem ? [ogonki]
#22049
Author: yamma
Date: Tue, 15 Feb 2011 19:12
23 lines
1906 bytes
Łukasz 'Maly' Ostrowski wrote:
> yamma wrote:
>> qaz wrote:
>>> using (TextWriter tw = new StreamWriter("nazwa.pliku", false,
>>> Encoding.Default))
>>> <snip>
>>
>> Zapisze ci tekst w UTF-8. Jeśli chcesz zakodować w ISO-8859-2 to
>> przed zapisem do strumienia musisz przekonwertować:
>
> Stanowczo lepiej jest jednak zmusić StreamWriter
> żeby sie zajął przekodowaniem z CLRowego Unicode...

He, he... Racja! Troszkę przekombinowałem. Wystarczy coś takiego:

   Encoding e = Encoding.GetEncoding("ISO-8859-2");
   using (StreamWriter sw = new StreamWriter("plik.txt", false, e))
   {
    string t = "zażółć gęślą jaźń";
    sw.WriteLine(t);
   }

yamma 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads