Архив метки: utf8

Установка кодировки UTF8 для ssh шелл FreeBSD

  1.  Выполняем в консоли chpass. Приводим секцию Class к виду: Class: russian. Должно получиться чтото вроде:
#Changing user information for root.
Login: root
Password: ущш мщаукоац ущк
Uid [#]: 0
Gid [# or name]: 0
Change [month day year]:
Expire [month day year]:
Class: russian
Home directory: /root
Shell: /bin/csh
Full Name: щцшу
Office Location:
Office Phone:
Home Phone:
Other information:

2. В файле /etc/login.conf прописываем:

russian|Russian Users Accounts:\
	:charset=UTF-8:\
	:lang=ru_RU.UTF-8:\
	:tc=default:

3. Выполняем в консоли

cap_mkdb /etc/login.conf

Сий мануал справедлив для FreeBSD 8.4

Отправка сообщения на email по smtp, в utf8 с телом в html

import smtplib   
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

		 msg = MIMEMultipart('alternative')
		 html_body="Внимание! У вас есть задача (№"+str(id)+") в sbss, которая уже длительное время находится в статусе ожидания! Через 3 дня она будет автоматически закрыта.. <br/><a href=https://oeirfoeriferoife.ru>"+name+"</a>".encode('utf-8')
		 msg.set_charset("utf-8")
		 msg['Subject'] = "Уведомление о длительной задаче №"+str(id);
		 msg['From'] = sbss_from_email
		 msg['To'] = m_arr["email"]		 
		 part = MIMEText(html_body, 'html', 'UTF-8')
		 msg.attach(part)
		 s = smtplib.SMTP(sbss_from_server)
		 s.login(sbss_from_email,sbss_from_pass);
		 s.set_debuglevel(1);
		 s.sendmail(sbss_from_email, m_arr["email"], msg.as_string())
		 s.quit()

Сортировка в MySQL кириллицы utf8-general-ci

загруженное (1)Дано: MySQL 5.1.72, таблицы созданные в utf8-general-ci, установка соединения вызывается следующей функцией:

function connect($host,$name,$pass,$base){
 $this->idsqlconnection=new mysqli($host,$name,$pass,$base);
 if (mysqli_connect_errno()) {
 $serr=mysqli_connect_error();
 die("Error connect to Mysql or select base: $serr");
 } 
 $result = mysqli_query($this->idsqlconnection,"SET NAMES utf8_general_ci"); 
 mysqli_set_charset($this->idsqlconnection, "utf8_general_ci");
 
 }

И хоть ты тресни, запрос вида:

$SQL = "SELECT * FROM places WHERE orgid='$orgid' AND active=1 ORDER BY name";
 $result = $sqlcn->ExecuteSQL( $SQL ) or die("Не могу выбрать список помещений!".mysqli_error($sqlcn->idsqlconnection));

Сортировался по непонятно каким критериям. Потеряв на поиск причины  несколько часов, перепробовав кучу «рецептов», пришлось заворачивать сортировку запросов в команду binary(), т.е. вот так:

$SQL = "SELECT * FROM places WHERE orgid='$orgid' AND active=1 ORDER BY binary(name)";

Костыль конечно.. И сортирует различая большие и маленькие буквы. Но таки лучше так чем никак. Ищу лучшее решение.