Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] Polskie znaki
Forum PHP.pl > Forum > Przedszkole
Stron: 1, 2
webdice
Wiele osób ma problem z polskimi znakami w bazie danych, dlatego postanowiłem jakiś czas temu napisać artykuł na łamach wortalu. Mam nadzieje że będzie pomocny, a forum nie będzie zaśmiecane kolejnymi pytaniami dotyczącymi tego problemu.

Artykuł znajduje się tutaj.
obelix94
Niestety taki ktoś jak ja nie umie szukać, przepraszam.
Legro
Artykuł? Przecież to sie nie nadaje na poradnik, a co dopiero na artykuł. Haha biggrin.gif
thomson89
Jakby komuś nie szło:
Pozdrawiam!
Adiqus
a mnie to się podoba ... na pewno się kiedyś przyda smile.gif
GregoryW
mam pytanie, jeśli wybieram zawsze utf8 polski i 'utf8_polish_ci', czy to ma jakieś znaczenie, niżeli wybierałbym 'utf8_unicode_ci'?
erix
Tak. Przy utf8_polish* polskie znaki diakrytyczne są uwzględniane przy sortowaniu. W przypadku pozostałych zestawów porównań - polskie litery są za literą Z w alfabecie (wxyząć).
thomson89
Jeżeli robisz zwykły blog to wystraczy unicode. Jak, sklep, czy coś z szukajką: polish.
aqun
Polski i hiszpański na tej samej stronie jednocześnie - czy to można zrobić?
Nie chodzi mi o przełączenie z jednej wersji językowej na inną, na ten temat znalazłem porady.
Problem jest taki:
w bazie MySQL chciałbym umieścić teksty polskie i hiszpańskie, a na stronie wyświetlać je tak żeby były widoczne
jednocześnie. Jeżeli to jest do zrobienia proszę o podanie jak poustawiać kodowanie w bazie i na stronie.
Będę też wdzięczny za uzasadnienie (jeżeli się nie da) to dlaczego, bo dociekliwy jestem i pewnie będę jakoś
na własną rękę zgłębiał temat, a po co tracić czas na wyważanie otwartych drzwi. Pozdro dla wszystkich.
mech
A dlaczego w różnych przeglądarkach różnie działają kodowania? Czy powinienem do każdej przeglądarki wstawiać osobne kodowanie? Jak by to rozwiązać?
thomson89
Może źle masz ustawione kodowanie, a każda przeglądarka ma inne kodowanie domyślne - stąd te różnice.

mech
To jak najlepiej to rozwiązać?
W jeden plik ładować kilka tablic czy mam tworzyć oddzielne pliki do każdej przeglądarki?
Meares
@aqun: Stwórz dwie kolumny - jedną dla polskich tekstów (utf8_polish_ci), a druga dla hiszpańskich (utf8_spanish_ci/utf8_spanish2_ci [nie mam pojęcia czym różni się spanish od spanish2]).

@mech: Nie jestem pewny, ale moim zdaniem wystarczy poprosić użytkowników, aby zmienili kodowanie w przeglądarkach na "Wybór automatyczny" (tak się to zwie w Operze). Jeśli zmienię sobie na jakieś inne, to jasne, że będzie źle wyświetlało polskie (i nie tylko) znaki.
aqun
Dzięki Meares, właśnie skończyłem, mam hiszpańskie i polskie znaki, dla porządku trzeba dodać że na stronie kodowanie trzeba ustawić na UTF-8. Miałem ISO 8859-2, więc wszystko trzeba było przekonwertować, no ale jest ok.
Pozdro dla wszystkich.
kupilemsobieksiazke
Mam pytanie... DOPIERO zaczynam i dzisiaj odebrałem z poczty "PHP i MySQL Tworzenie stron WWW Vademecum Profesjonalisty". Słuchajcie... to dopiero php. Zamiast instalować wszystkiego po kolei zainstalowałem xamppa. Trochę minęło zanim się w tym wszystkim połapałem.

Na IE wszystko działa ok - wyświetla się ąśćę... ale normalnie korzystam z Opery i tam zamiast ś dziwny kwadracik, a o dziwo np. ć wyświetla się dobrze. Nie znalazłem na forum rozwiązania takiego problemu.
Wkleiłem <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> do jednego pliku z płytki i wszystkie polskie znaki to kwadraty, a na IE dalej wszystko ok.

Z góry dzięki, jak ktoś mógłby mi pomóc smile.gif
thomson89
Zainstaluj sobie notepad++ i kliknij konwertuj na utf-8. Lub poprzez gżegżółkę...
kupilemsobieksiazke
Działa smile.gif A jakby wrzucać na serwer hostingowy (nie jakiś localhost), to też trzeba tak konwertować?

Z góry dzięki. Już pomogłeś.
thomson89
Zależy jaki. Mam obecnie serwer na prohost. Kodowanie miałem po prostu ustawione na utf-8, ale po wrzuceniu na tenże serwer musiałem KONWERTOWAĆ każdy plik do utf-8 bez bom. Inaczej plik wariował. Np. htaccess, zamiast plików podanych w <file plik> zamieniał wszystkie pliki na te parsowane przez php. Także były różne głupoty tam tongue.gif
kupilemsobieksiazke
Więc tak naprawdę nie ma na to sposobu? ;/
thomson89
Cytat(kupilemsobieksiazke @ 17.12.2009, 19:01:08 ) *
Więc tak naprawdę nie ma na to sposobu? ;/


Sposób jest, lecz nie ma reguły. Najlepiej jest konwertować wszystko na utf-8 bez bom i powinno wszędzie śmigać.
kupilemsobieksiazke
Znowu źle ;/ Jak w IE dobrze, to OPERA się sypie... Albo na odwrót. Mam problem z zapisem do pliku tekstowego (nawet nie tyle, że źle odczytuje)... Ma problem z odczytaniem czegoś takiego "\n" i na pewno jest to dobrze, bo to przykład z książki. Podejrzewam, że to wszystko ściśle powiązane... A uczę się od środy.
thomson89
nl2br

Hej, a zadeklarowałeś na początku strony w head, że to utf-8? Jak cos zapisujesz do pliku, to plik najpierw przekonwertuj na utf-8 a potem cos zapisuj.
kupilemsobieksiazke
No hej

<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">

takie coś dodaję.

Mam taki problem. Koduję wszystko w UTF-8 bez iso cośtamcoś 2. I zapisuję do pliku w notatniku ciąg znaków ąęśćńźżół z "\n" na końcu, polskie znaki ok, ale na końcu jest kwadracik, a miało być złamanie linii. Natomiast zapisując to wszystko do Excela, złamanie linii działa (niższy wiersz),a polskie znaki wyglądają tak: ąęśćńźżół

Wszędzie koduję na UTF-8 za pomocą notepad++ (w plikach .html i .php). Jak kombinowałem i przekonwertowałem plik excela na ascii to wyszło ok, ale tak to się sypie...
thomson89
Cytat(kupilemsobieksiazke @ 20.12.2009, 17:49:02 ) *
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
(...)
Wszędzie koduję na UTF-8...


Z naciskiem na iso-8859-2 i UTF-8 biggrin.gif

Daj tak:
  1. <meta http-equiv="Content-type" content="text/html; charset=utf-8">
kupilemsobieksiazke
Właśnie tak miałem we wszystkich plikach php i html. Przy zapisie do notatnika (.txt) zamiast prawidłowej interpretacji "\n" kwadracik, a jak chcę tu wkleić ten kwadracik, to mi się robi nowa linia...
O właśnie tak. Tu go nie widać. Znalazłem tylko jedno rozwiązanie na prawidłowy odczyt z tego pliku (.txt) mianowicie:

while (!feof($wp))
{
$znak = fgetc($wp);
echo ($znak=="\n" ? "<br />": $znak);
}

Wtedy to interpretuje dziwny kwadracik jako łamanie linii...

Natomiast przy odczycie pliku z excela wszystko jest ok, a w samym excelu łamie linie poprawnie (robi kolejne wiersze), ale polskie znaki... Trzeba cały czas konwertować na ascii i wtedy jako tako, ale przy zapisie znowu zapisują się szlaczki.

Z kolei wczoraj robiłem banalny profil logowania, na podstawie tych wszytkich informacji i serwer (110mb.com), który obsługuje php5 i mysql, nie interpretuje "\n" oraz "\t", zamiast tego po zapisie wyświetla się "n" oraz "t".

webdice
Ułomny notatnik ignoruje sam znak nowej linii. Nie mniej jednak on tam jest. Jeśli chcesz aby w notatniku tekst był poprawnie wyświetlany musisz zrobić tak:

Kod
pierwsza linia\r\ndruga linia
kupilemsobieksiazke
Dzięki smile.gif Jeden problem rozwiązany. Teraz tylko... co z dziwnymi znakami w excelu i łamaniem lini na serwerze, gdzie wszystkie backslashe są zastępowane niczym.

To mój notatnik jest zły? Czy to autorzy książki nie zadbali o przenośność kodu?
thomson89
Excel jest zupełnie inaczej kodowany. Poszukaj coś w stylu "otwieranie plików doc php".


A jak dajesz, to \n? W ciągu " czy ' (choć nie jestem pewien czy to jakaś różnica jest).
kupilemsobieksiazke
Jest różnica. Taki znak tylko w ciągu "" podwójnych nawiasów. Do wywoływania używam zawsze echo. Okok poszukam.
kuxma
Witam. Jestem tu nowy i mam problem z polskimi znakami. Oto co zrobiłem

w pliku php na stronie umieściłem:
  1. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />


na serwerze w tabeli zmieniłem kodowanie znaków na utf8_polish_ci

w pliku coon.php
  1. <?
  2. define('DB_HOST','xxxxxxxx.pll');
  3. define('DB_USER','lużytkownik'); //wpisz nazwęużytkownika bazy
  4.  
  5. danych
  6. define('DB_PASS','hasło'); //wpisz hasło dla tego użytkownika
  7. define('DB_DB','xxxxx_xxxx_pl');
  8.  
  9. $connect = mysql_connect(DB_HOST, DB_USER, DB_PASS)
  10. or die('Nie udało połączyc się z bazą danych. '.mysql_error());
  11.  
  12. mysql_query( "set names 'utf8'") ;
  13. mysql_query( "SET CHARACTER_SET utf8_unicode_ci'");
  14.  
  15. mysql_select_db(DB_DB,$connect) or die('połonczano
  16.  
  17. sie.'.mysql_error());
  18.  
  19. ?>


a to kod php w kórym chce mieć polskie znaki
  1. <?
  2.  
  3. require('coon.php');
  4.  
  5.  
  6.  
  7.  
  8. $login = mysql_real_escape_string (trim($_POST['login']));
  9.  
  10. $wpis = mysql_real_escape_string (trim($_POST['wpis']));
  11.  
  12. if($login and $wpis) {
  13.  
  14.  
  15. $zapytanie="INSERT INTO ksiega (login,wpis) VALUES('$login','$wpis')";
  16.  
  17. mysql_query($zapytanie) or die("Nie dodano rekordu" );
  18.  
  19. echo('Dodano wpis '.$login.' ');
  20. }
  21.  
  22. ?>
  23.  
  24. <h1 align="center"><font size="5" color="#FF0000">Dodaj wpis</font></h1>
  25.  
  26. <form action="ksiega.php" method="post">
  27.  
  28. <strong>Login:</strong><br><input name="login" type="text" value="" /><br>
  29.  
  30. <strong>Twój wpis:</strong><br><input name="wpis" type="text" value="" size="73" /><br>
  31.  
  32. <input type="submit" value="Dodaj" />
  33.  
  34. </form>
  35.  
  36. <br><br>
  37. <?php
  38. require('coon.php');
  39. $query="SELECT * FROM ksiega";
  40. $result=mysql_query($query);
  41.  
  42. $num=mysql_numrows($result);
  43.  
  44.  
  45. echo "<b><center>Wasze wpisy</center></b><br><br>";
  46.  
  47. $i=0;
  48. while ($i < $num) {
  49.  
  50. $login=mysql_result($result,$i,"login");
  51.  
  52. $wpis=mysql_result($result,$i,"wpis");
  53.  
  54.  
  55. echo "<b>Login: $login <br> Wpis: $wpis </b><hr><br>";
  56.  
  57. $i++;
  58. }
  59.  
  60. ?>


Pomocy już nie wiem co mam robić
webdice
Jak coś to:

  1. mysql_query( "set names utf8") ;
kuxma
To taż nic nie daje. W phpMyAdmin próbowałem zmienić rekord na polskie znaki ą ś ć ę . Ale po tej zmienie nadal pojawiają się znaki ? ? ? ?. A tabela i baza danych jest w systemie kodowania utf8_polish_ci. Może coś w serwerze ustawić??
webdice
Mówisz utf_polish_ci, a w kodzie masz:

  1. mysql_query( "SET CHARACTER_SET utf8_unicode_ci'");


Zdecyduj się na jedno. Poza tym jakie masz kodowanie pliku?
kuxma
przed chwilą zmieniłem wszystko na utf8_unicode_ci. A z tym kodowaniem pliku to trochę nie rozumiem jestem początkujący

webdice
Cytat(kuxma @ 22.12.2009, 11:28:44 ) *
(...). A z tym kodowaniem pliku to trochę nie rozumiem jestem początkujący


Co nie zmienia faktu że w używaniu mózgu początkujący nie jesteś. Na forum była masa tematów na ten temat, w sieci jeszcze więcej.
kuxma
Wiem co było źle Metoda porównywania napisów W TABELI była ustawiona na latin1_swedish_ci. Przepraszam za kłopot
dyziekwik
witam, nie jestem ekspertem, ale chciałbym się podzielić spostrzeżeniem. ustawiałem wszystko na utf8 tak jak mówiliście i dupa, wziąłem więc pajączka (bo w tym zwykłem pisywać) i tam ustawiłem kodowanie na utf8 i odczyt dokumentu w tym samym kodowaniu. jeśli w kodzie strony mamy krzaki to trzeba je wtedy zamienić na polskie litery i zapisać w utf8. Mi teraz chodzi.
webdice
Niczego nowego nie odkryłeś, mówisz o kodowaniu pliku, a o tym było już kilkanaście tematów na forum.
Daniel Meger
Jeżeli używasz UTF-8, zapisujesz w UTF-8, dodajesz odpowiednie nagłówki HTML dla UTF-8, a serwer i tak to czyta 'po swojemu' - dopisz na każdej stronie php nagłówek, że plik jest zakodowany w UTF-8:
  1. <?php
  2. header('Content-type: text/html; charset=utf-8');
  3. ?>

Musisz to oczywiście dopisać przed wysłaniem nagłówków, a więc przed jakimkolwiek znakiem, tzn. przed <?php nie może być ani spacji ani entera, ani żadnego innego znaku.

Do tego jak baza jest w UTF-8, to wszystko będzie już działać poprawnie.

Wiem, że mogę się tutaj narazić na pewną krytykę i wiem, że to OT, ale moim zdaniem warto (właśnie w kontekście charsetów) z pajączków, zajączków i innych takich wynalazków przesiąść się na porządny IDE (polecam darmowy NetBeans).
darophp
Tak, ja bym to uniemożliwił.
monami
Cytat
Tak, ja bym to uniemożliwił.

Jeżeli to odpowiedz na post o polskich znakach w loginie i hasle przy rejestracji to dziekuje.
Usunelam post zaraz po dodaniu bo cos na temat znalazlam na innej stronie, nie zauwazylam odpowiedzi.
pag-r
Nie chce tworzyć nowego tematu,a zapewne ktoś miał do czynienia z takim problemem. Mianowicie mam bazę zapisaną w latin2. Żeby wyświetlić dane konwertuje je do utf-8 (iconv()), ponieważ moduł do przetwarzania tych danych jest w utf-8. Ale kiedy cokolwiek zmienię w polach edycji czy to input czy textarea i prześle te dane POST'em, są już nie do odczytania. Pojawiają się symbole nieprawidłowego kodowania typu zamiast litery ł pojawia się A z kółkiem. W każdym razie kodowanie się psuje. W jaki sposób sprawić by te dane były kodowane w jakiś ze standardowo przyjętych, żeby móc z nimi cokolwiek sensownego zrobić?
k_rogalski
Modyfikuje skryp z generatora formularza. Chce by w nazwisku dostepne byly polskie znaki. Pierwszy problem to wyslwietlanie polskich zankow po wyslaniu formularz. Formularz akceptuje i przesyla je do mysql natomiast zupenie nie akceptuje "o z kreska" ani w formie "o z kreska" a ni w formie utf. W przypadku wpisania "o z kreska" do formularza wyskakuje info, ze znak niedozwolony.

Druga sprawa to iz w bazie, polskie znaki zapisane sa unicodem, a nie forma graficzna(a z ogonkiem itp). Metoda porownania to latin2_general_ci.Prosze o info jak to zmienic. Ponizej skrypt. Probowalem mysql_query('SET NAMES latin2_general_ci'); i mysql_query('SET NAMES utf8'); ale nie wiem czy w dobrym miejscu wstawiam...

<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<?php
include("global.inc.php");
$errors=0;
$error="Formularz zostal niepoprawnie wypelniony. Sporboj ponownie. Ponzej znajduja sie popelnione bledy<ul>";
pt_register('POST','Email');
pt_register('POST','haslo');
pt_register('POST','nazwisko');
if($Email=="" || $haslo=="" ){
$errors=1;
$error.="<li>Zadne pole nie moze poozstawac bez danych. Prosze wrocic i rozpoczac od nowa.";
}
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$Email)){
$error.="<li>Niepoprawna forma email";
$errors=1;
}
if(strlen ($haslo) <3 || strlen ($haslo)> 16)
{
$errors=1;
$error.="<li>Haslo musi miec conajmniej 10 znakow. Nie wiecej niz 16.";
}
if(!eregi("^[a-zA-Z;ÓóĄąĆćĘꣳŃńŚśŹźŻż]*$",$nazwisko)){
$error.="<li>Niepoprawne znaki";
$errors=1;
}
if($errors==1) echo $error;
else{
$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/"));
$message="Ponizsze dane zostaly zapisane na serwerze Dk service
Email: ".$Email."
haslo: ".$haslo."
nazwisko: ".$nazwisko."
Jesli chcesz zmodyfikowac dane www.google.pl";
$message = stripslashes($message);
mail("testi@o2.pl","Form Submitted at your website",$message,"From: phpFormGenerator");
mail("$Email","Form Submitted at your website",$message,"From: phpFormGenerator");


$link = mysql_connect("localhost","xxxx","xxxxxx");
mysql_select_db("guingamp_cv",$link);



mysql_query('SET NAMES utf8);

mysql_query('SET NAMES latin2_general_ci');


$query = mysql_query("SELECT * FROM firma WHERE email = '$Email'||'$nazwisko'");
if( mysql_num_rows($query) != 0)

echo 'Apikacja zostala juz wczesniej zlozona.<a href="http://www.dkservice.eu/phpformgenerator/use/firma/form1.html"><input type="button" value="cofnij" /></a>
';

else {

$query="insert into firma (Email,haslo,nazwisko) values ('".$Email."',sha1(md5('".$haslo."')),'".$nazwisko."')";

mysql_query($query);
$make=fopen("admin/data.dat","a");
$to_put="";
$to_put .= $Email."|".$haslo."|".$nazwisko."
";
fwrite($make,$to_put);

?>




<h2>Dziekujemy za wypelnienie aplikacji</h2>

<table width=50%>
<tr><td>Email: </td><td> <?php echo $Email; ?> </td></tr>
<tr><td>haslo: </td><td> <?php echo $haslo; ?> </td></tr>
<tr><td>nazwisko: </td><td> <?php echo $nazwisko; ?> </td></tr>
</table>


<?php
}}
?>
ixpack
  1. mysql_query('SET NAMES utf8);
  2.  
  3. mysql_query('SET NAMES latin2_general_ci');


A czemu ustawiasz najpierw utf a później latin? Jak kodujesz dane w bazie? Ustaw kolumnę z nazwiskami na utf. I jak dodajesz nazwisko to ustaw dane jako utf, tak samo chyba jak nazwisko wyciągasz.

Jeżeli masz: dokument w utf8, dodajesz do bazy dane z tego dokumentu, ale przedtem ustawiasz names utf8 i jeżeli kolumna do której dodajesz dane utf8 jest w systemie kodowania utf8 I system porównania jest utf8 to musi działać.

Tak samo z wyciąganiem danych.
Rid
Mam zadeklarowane nagółwki header, meta w utf-8 ,pliki skonwertowane do utf8 bez bom. Cały serwer zainstalowany od nowa:
Apache 2.2
PHP 5.2.15 V6
MySQL 5.1.52 na win XP.Baza była utworzona za pomocą skryptu
Kod
$link=mysql_connect('localhost','root','');

$charset = mysql_client_encoding($link);

if ( $charset != 'utf8' ) {

mysql_set_charset('utf8',$link);

}



$sql="CREATE DATABASE IF NOT EXISTS rejestr ";

mysql_query($sql) or die(mysql_error());





mysql_select_db('rejestr',$link);



$sql="CREATE TABLE IF NOT EXISTS rejstr(

id int(4) NOT NULL auto_increment,

nick varchar(30) NOT NULL ,

haslox varchar(32) NOT NULL ,

mails varchar(70) NOT NULL ,



PRIMARY KEY klucz1 (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci; ";



mysql_query($sql) or die(mysql_error());
więc nie ma możliwości żeby była kodowana inaczej jak w UTF-8 i nie wiem dlaczego koduje mi w latin1 po wysłaniu formularza,a w bazie są krzaki.
Czy ktoś mógłby ,polecić mi jakiś naprawde ,dobry program serwerowy z Apache ,PHP i MySQL?Już kilka razy reinstalowałem swój serwer i w rezultacie otrzymuje inne kodowanie niż zadeklarowane.Ręce opadają. withstupidsmiley.gif
Zyx
Ale na kolumny to już kodowania nie ustawiłeś.
Rid
Popatrzyłem w MySQL Workbench i kolumny utworzyły się w UTF8 polish_ci więc wszystko wydaje się być wporządku.
rulespl
Witam
Nie wiem dlaczego ale cały czas pokazują mi się krzaczki zamiast polskich znaków. Używam kodowania UTF-8;
Oto jak wygląda sytuacja:
-Pliki są kodowane w UTF-8 bez DOM (zwykłe utf-8 też sprawdzałem) - ustawiłem poprzez notepad ++
-Kodowanie na stronie:
  1. <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />

-przy połączenu z bazą mam:
  1. mysql_query("SET NAMES utf8'");
  2. mysql_query("SET CHARACTER_SET utf8_unicode_ci");

-baza tabela i kolumny mają poustawiane kodowanie utf8_unicode_ci

Dodatkowo po wpisaniu
  1. SHOW VARIABLES LIKE 'character\_set\_%';


Pokazuje mi:
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8

Z tego widzę, że character_set_server ma ustawione latin1, czy to powoduję problem? Jeśli tak, czy da się to jakoś obejść bez zmiany ustawień całego serwera?

Jeszcze jedno. Przy dodawaniu wartości z poziomu php nie wstawia polskich znaków. To chyba jest problem z kodowaniem serwera, ale jak to zmienić, żeby inne bazy na serwerze nie wykrzaczyły się przy okazji?
webdice
Poczytaj o AddDefaultCharset w Apache.

P.S. Bez BOM, nie DOM.
rulespl
No ta miałem na myśli oczywiście BOM

Ustawiłem w .htaccess

AddDefaultCharset UTF-8

Nic nie dało, jeszcze dodam, że w pliku na górze mam także:
  1. header('Content-type: text/html; charset=utf-8');
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.