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]
Author: qaz
Date: Tue, 15 Feb 2011 08:33
Date: Tue, 15 Feb 2011 08:33
29 lines
2037 bytes
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]
Author: Łukasz 'Maly' Ostrowski
Date: Tue, 15 Feb 2011 09:20
Date: Tue, 15 Feb 2011 09:20
20 lines
1470 bytes
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]
Author: Macko
Date: Tue, 15 Feb 2011 10:07
Date: Tue, 15 Feb 2011 10:07
4 lines
1367 bytes
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]
Author: qaz
Date: Tue, 15 Feb 2011 13:26
Date: Tue, 15 Feb 2011 13:26
11 lines
1479 bytes
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]
Author: Macko
Date: Tue, 15 Feb 2011 13:38
Date: Tue, 15 Feb 2011 13:38
19 lines
1809 bytes
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]
Author: qaz
Date: Tue, 15 Feb 2011 13:46
Date: Tue, 15 Feb 2011 13:46
10 lines
1377 bytes
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]
Author: Łukasz 'Maly' Ostrowski
Date: Tue, 15 Feb 2011 14:42
Date: Tue, 15 Feb 2011 14:42
24 lines
1743 bytes
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]
Author: yamma
Date: Tue, 15 Feb 2011 14:46
Date: Tue, 15 Feb 2011 14:46
20 lines
1681 bytes
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]
Author: Łukasz 'Maly' Ostrowski
Date: Tue, 15 Feb 2011 15:39
Date: Tue, 15 Feb 2011 15:39
24 lines
1784 bytes
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]
Author: yamma
Date: Tue, 15 Feb 2011 19:12
Date: Tue, 15 Feb 2011 19:12
23 lines
1906 bytes
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