Записване на файлове в кирилица ?

fabi00

Registered
Цял ден се 'мъча' да го докарам . И съм до никъде.

Идеята ми е да следната.
<form enctype="multipart/form-data" action="submit.php" method="POST" name='Form'>
<input type='text' name='title'/>
<input type='file' name='file' />
...


Без значение какво ще е името на прикачения файл да го преименува със стойността от "text" полето.

В момента го преименува но със някакви йероглифи.

Снимка -> СнимÐ

Много ще съм благодарен ако ударите едно рамо.
 
оправи си ендкодинга на страницата .. смени го на windows-1251 или Utf-8 ии си направи файловете Utf8 WithOut bomm ! :)
 
Всички файлове са си в UTF-8 without BOM проверявал съм ги с Notepad++.
Освен това имам навика да изпозвам вградения файлов мениджър на cPanel.
Като при всяко отваряне ме пита какъв да е енкодинга.

В краен случай Netbeans за да видя къде съм оплескал кода.

Отностно кодирането съм убеден че е UTF-8 without BOM.

<meta http-equiv="content-type" content="text/html; charset=utf-8" >

смених го на windows-1251 , положението е същото .

Прегледах готовите скриптове в codecanyon повечето от тях не се справиха с файлове с имена на кирилица. Освен освен 1. В краен случай ще трябва да жертвам $6 долара, за да видя аджаба какво в повече има. :)
 
Попринцип кодировката на файловете си ги прави винаги utf-8 witouth bom, кодривката на саймия сайт в <head> тага също utf-8, базите данни също utf-8, изпращането на заявки към базата данни и тяхното вадене също utf-8.
Това е за да показва правилен charset на сайта ти, за да няма иероглифи, разни купченца, триъгилничета и др. символи и фиргурки.
 
Като гледам май с тази post форма вкарваш и изкараваш от база данни.

За това преди изпълнението на заявката за вкарване на резултати в базата, слагай ето това преди нея:

PHP:
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");

Направи си базата данни, таблиците в нея и полетата в таблиците (общо взето всичко, по базата данни) utf8_general_ci (има го някаъде на долу в менюто, при избиране на charset на таблицата).

После като вадиш резултати отново преди заявката за вадене на резултатите може да сложиш отново:

PHP:
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
 
Не не става дума за база данни.

$title = $_POST['title'];
$file = $_FILES['file'];

...
...

$new_file_name = strtolower($title);
$new_file_name = str_replace(' ', '-', $new_file_name);
$new_file_name = substr($new_file_name, 0, -strlen($ext));
$new_file_name .= '.'.$extension;
$move_file = move_uploaded_file($file['tmp_name'], $upload_image_to_folder.$new_file_name);

асдÑ.jpg
 
Голяма съм овцаааа. :)

Filezilla - тa, ме е подвела.
Като погледнах файловете в директорията чрез cPanel са си на кирилица.

имам достъп до тях .
site.com/upload/име.jpg

А разбира се промених малко кода.

$new_file_name = $title.'.'.$extension;
$new_file_name = str_replace(' ', '-', $new_file_name);
 

Back
Горе