Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
1

Как правильно передать и сохранить на сервере русские символы?

29.06.2013, 20:44. Просмотров 1912. Ответов 17
Метки нет (Все метки)

вот мой скрипт, русские буквы в $msg он пишет каракулями:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?
$skey = $_GET['key'];
$msg = $_GET['msg'];
$bug = $_GET['bug'];
$mail = $_GET['mail'];
$file = "";
if($skey == "q666")
{
$date = date("d.m.Y.H.i.s");    
if($bug == "true")                     
{
$file = "bug//".$date.".txt";
}
else
{
$file = "feedback//".$date.".txt";
}
if (!file_exists($file)) {
$Handle = fopen($file, 'w+');
fwrite($Handle, $msg);
fwrite($Handle, "|".$mail);
fclose($Handle);
echo "ok";
}
 
}
else
{
echo "**** you!";
}
?>
а так я на C# отправляю мессаг:
C#
1
2
3
if (this.Text.Contains("отзыв")) bug = "false"; else bug = "true";
if (textBox2.Text != "") mail = textBox2.Text; else mail = "null";
Form1.getPageSource("мойсайт/feedback.php?key=q666&msg=" + msg + "&bug=" + bug + "&mail=" + mail)
что надо поправить, чтобы с русскими было всё ок? Помогите.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2013, 20:44
Ответы с готовыми решениями:

Как правильно писать русские символы при написании sql-запросов?
Как правильно писать русские символы при написании sql запросов. В языке sql они должны быть в...

В консоль русские символы выводятся правильно, а вот в файл - нет
Всем доброго времени суток!!! Вообще раньше писал на Borland C++, но тут пришлось писать на...

QProcess: передать аргументы правильно ( символы '=')
Всем привет! Я хочу запустить application с аргументами, которые в качестве присваивании...

Как в C# искать русские символы?
data_href=&quot;Привет&quot; if (data_href.Contains(&quot;Привет&quot;) { } как такое реализовать*??

17
387 / 294 / 21
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 1
29.06.2013, 21:36 2
Ипользуй кодировку UTF-8!
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
29.06.2013, 21:54  [ТС] 3
Цитата Сообщение от KeyGen Посмотреть сообщение
Используй кодировку UTF-8!
- та я понимаю что надо ЮТФ8, но не нагуглил полезной инфы об этом...
0
899 / 832 / 197
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
29.06.2013, 22:14 4
1.Всем страницам в html коде
Javascript
1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2.В редакторе, в котором верстаете, тоже кодировку utf-8
3. В .htaccess - если есть доступ
AddDefaultCharset utf-8
4. База данных в utf-8
5. Подключение к базе данных
Например так
PHP
1
2
3
4
5
<?php $db=mysql_connect ("localhost","admin","1111");
    if(!$db) die ("Ошибка доступа к базе данных. ) ;
    if(! mysql_select_db ("baza",$db)) die("База данных отсутствует. ");
  mysql_query('set names utf8');
  ?>
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
29.06.2013, 22:39  [ТС] 5
@Soldado,
1. у меня только пхп.
2. кодю через net2ftp, он в FTP_ASCII сохраняет, изменить низя, но это не имеет значения.
3. где этот файл?
4 и 5 - базы не юзаю, пока хватает тхт.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16826 / 6704 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
29.06.2013, 22:58 6
Цитата Сообщение от MegaSinner Посмотреть сообщение
у меня только пхп
на выходе все равно html
Цитата Сообщение от MegaSinner Посмотреть сообщение
в FTP_ASCII сохраняет, изменить низя
что мешает использовать нормальный редактор?
Цитата Сообщение от MegaSinner Посмотреть сообщение
но это не имеет значения
еще как имеет.
Цитата Сообщение от MegaSinner Посмотреть сообщение
где этот файл?
в корне сайта. Если его нет - создайте сами (если, конечно, хостинг позволяет его использовать)
для php кодировку можно установить с помощью header
PHP
1
header('Content-type: text/html; charset=КОДИРОВКА');
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
29.06.2013, 23:00  [ТС] 7
пробовал для теста:
PHP
1
echo utf8_decode($msg);
- не помогло.

Добавлено через 1 минуту
Цитата Сообщение от KOPOJI Посмотреть сообщение
еще как имеет.
я не использую русские символы в коде, по этому на этот момент пофик.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16826 / 6704 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
29.06.2013, 23:01 8

Не по теме:

а какой смысл ее пробовать, если сам файл в левой кодировке?



Добавлено через 31 секунду
Цитата Сообщение от MegaSinner Посмотреть сообщение
я не использую русские символы в коде, по этому на этот момент пофик
Цитата Сообщение от MegaSinner Посмотреть сообщение
русские буквы в $msg он пишет каракулями
..?

Добавлено через 24 секунды
или $msg у вас откуда-то сама появляется?
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
29.06.2013, 23:12  [ТС] 9
Цитата Сообщение от KOPOJI Посмотреть сообщение
Не по теме:
а какой смысл ее пробовать, если сам файл в левой кодировке?
русское echo "фак ю!" оно выводит, поэтому кодировка САМОГО СКРИПТА здесь ни при чем.

.htaaccess не помог.

Добавлено через 2 минуты
Цитата Сообщение от KOPOJI Посмотреть сообщение
или $msg у вас откуда-то сама появляется?
забыл указать:
C#
1
string msg = richTextBox1.Text;
затем вызов скрипта:
C#
1
Form1.getPageSource("мойсайт/feedback.php?key=q666&msg=" + msg + "&bug=" + bug + "&mail=" + mail)
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16826 / 6704 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
29.06.2013, 23:17 10
вы уверены, что проблема в php, а не шарпе?
Цитата Сообщение от MegaSinner Посмотреть сообщение
русское echo "фак ю!" оно выводит
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
29.06.2013, 23:22  [ТС] 11
@KOPOJI,
а хз теперь. К примеру, вызывая так: ...feedback.php?msg=хала!
если вывести мессаг в эхо, то будет: ��� �!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16826 / 6704 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
29.06.2013, 23:28 12
Цитата Сообщение от MegaSinner Посмотреть сообщение
будет: ��� �
https://www.cyberforum.ru/post4457363.html (изображение кодировок)
Вы пробовали в начале php-кода добавить header ?
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
29.06.2013, 23:44  [ТС] 13
Цитата Сообщение от KOPOJI Посмотреть сообщение
Вы пробовали в начале php-кода добавить header ?
какой?
Ещё момент: если хардкорно прописать в тхт русские:
fwrite($Handle, "раша");
то всё читается ок, а вот при передаче параметра фигня какая-то происходит - всё заменяется на "???...."
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16826 / 6704 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
29.06.2013, 23:46 14
выше я писал
Цитата Сообщение от KOPOJI Посмотреть сообщение
для php кодировку можно установить с помощью header
PHP
1
header('Content-type: text/html; charset=КОДИРОВКА');
Добавлено через 41 секунду
на крайний случай можно использовать iconv или mb_convert_encoding. Какая у вас кодировка видно по картинке
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
29.06.2013, 23:55  [ТС] 15
@KOPOJI, походу я ошибся тогда, в эхо тоже не выводит, "фак ю!" выводит как ��� �!
По той картинке я чё-то не понял. И хеадер не помог(пробовал UTF-8 и UTF8).
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16826 / 6704 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
30.06.2013, 00:04 16
по той картинке данные, находящиеся изначально в UTF-8 выводятся в ISO-8859-5
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
30.06.2013, 00:09  [ТС] 17
Цитата Сообщение от KOPOJI Посмотреть сообщение
по той картинке данные, находящиеся изначально в UTF-8 выводятся в ISO-8859-5
и чё мне делать с этим?
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
01.07.2013, 21:02  [ТС] 18
Поскольку ничто из вышеперечисленного не помогло, решил проблему самостоятельно следующим образом(может кому пригодится):
Заменяем русские на спец-коды:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
           ArrayList alf = new ArrayList(100);
            alf.Add("А");
            alf.Add("а");
            alf.Add("Б");
            alf.Add("б");
            alf.Add("В");
            alf.Add("в");
            alf.Add("Г");
            alf.Add("г");
            alf.Add("Д");
            alf.Add("д");
            alf.Add("Е");
            alf.Add("е");
            alf.Add("Ё");
            alf.Add("ё");
            alf.Add("Ж");
            alf.Add("ж");
            alf.Add("З");
            alf.Add("з");
            alf.Add("И");
            alf.Add("и");
            alf.Add("Й");
            alf.Add("й");
            alf.Add("К");
            alf.Add("к");
            alf.Add("Л");
            alf.Add("л");
            alf.Add("М");
            alf.Add("м");
            alf.Add("Н");
            alf.Add("н");
            alf.Add("О");
            alf.Add("о");
            alf.Add("П");
            alf.Add("п");
            alf.Add("Р");
            alf.Add("р");
            alf.Add("С");
            alf.Add("с");
            alf.Add("Т");
            alf.Add("т");
            alf.Add("У");
            alf.Add("у");
            alf.Add("Ф");
            alf.Add("ф");
            alf.Add("Х");
            alf.Add("х");
            alf.Add("Ц");
            alf.Add("ц");
            alf.Add("Ч");
            alf.Add("ч");
            alf.Add("Ш");
            alf.Add("ш");
            alf.Add("Щ");
            alf.Add("щ");
            alf.Add("Ъ");
            alf.Add("ъ");
            alf.Add("Ы");
            alf.Add("ы");
            alf.Add("Ь");
            alf.Add("ь");
            alf.Add("Э");
            alf.Add("э");
            alf.Add("Ю");
            alf.Add("ю");
            alf.Add("Я");
            alf.Add("я");
            alf.Add("І");
            alf.Add("і");
            alf.Add("Ї");
            alf.Add("ї");
            alf.Add("Є");
            alf.Add("є");
 
            ArrayList encode = new ArrayList(100);
            for (int i = 0; i < alf.Count; i++)
            {
                if (i < 10)
                {
                    encode.Add("%Q0" + i.ToString());
                }
                else
                {
                    encode.Add("%Q" + i.ToString());
                }
            }
 
            for (int i = 0; i < alf.Count; i++)
            {
                msg = msg.Replace(alf[i].ToString(), encode[i].ToString());
            }
Восстанавливаем буквы по таблице:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$alf = array("А","а","Б", "б","В","в","Г", "г", "Д","д","Е", "е", "Ё","ё","Ж", "ж", "З","з","И", "и", "Й","й","К", "к", "Л","л","М","м","Н", "н", "О","о","П", "п", "Р","р","С", "с", "Т","т","У", "у", "Ф","ф","Х", "х", "Ц","ц","Ч", "ч", "Ш","ш", "Щ", "щ","Ъ", "ъ", "Ы","ы","Ь", "ь", "Э","э","Ю", "ю", "Я","я","І", "і", "Ї","ї","Є", "є",);
 
$encode = array();
for ($i = 0; $i < count($alf); $i++)
{
if($i<10)
{
$encode[$i] = "%Q0".$i;
}
else
{
$encode[$i] = "%Q".$i;
}
 
}
 
for ($i = 0; $i < count($alf); $i++)
{
$msg = str_replace($encode[$i], $alf[$i], $msg);
}
Может и через *опу, но цель достигнута
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.07.2013, 21:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как в c++ подключить русские символы?
Можно ли подключить что-нибудь и делать так: #include &lt;iostream&gt; #include &lt;string&gt; using...

Не получается чтобы он все символы с текста читал и типа счетчика который считает одинаковые символы как один и плюсует их....Как сделать правильно???
#include&lt; stdio.h&gt; #include&lt; conio.h&gt; #include&lt; string.h&gt; #include &lt;iostream&gt; #include...

Как передать в MySQL русские буквы
Промучался часа 2, а потом оказалось что Delphi не передает русские шрифты в MySQL, или просто я...

как обрабатываются русские символы в строке на c++
у меня компилятор Geany написал программу для поиска подстроки в строке она работает правильно с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.