Задать вопрос
@dk-web

Как корректно записать в MySQL из Excel русский и французский язык?

Рвется там где не ждешь..
Таблица - названия стран - на русском, английском и французском.
Тык пык и csv ни в какую не хочет корректно отображать французский.. Alg?rie - и т.д.
Мне кажется уже все комбинации кодировок перепробовал.

Если не csv, то как импортировать? Нормально сохраняет только в формате Текст Юникод, а CSV с форматом Юникод не хочет принимать...
  • Вопрос задан
  • 683 просмотра
Подписаться 1 Оценить 7 комментариев
Решения вопроса 1
@dk-web Автор вопроса
На мой вопрос нашлось весьма простое решение, предложенное AVKor. Поскольку в комментариях не могу отметить решением.
Установил Libre office, а дальше все по той же схеме.
Все всё скушали и верно вывели на экран.
Ну во всяком случае пока)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
honor8
@honor8
Принципы быстродействия VBA в описании
Я вообще не понял, при чём тут Microsoft Excel, PHP и Парсинг.
  1. Если файл CSV, сохраняй в Юникод и заливай в базу.
  2. Если файл XLS, устанавливай соединение с базой, открывай файл: читай и заливай.
  3. Средствами VBA (через Excel) можно подключить библиотеку для перевода текста в Юникод (в модуле пишем):
Private Declare Function WideCharToMultiByte Lib "kernel32.dll" _
  (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr _
  As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As Long, _
  ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, _
  ByVal lpUsedDefaultChar As Long) As Long

Public Function ToUTF8(ByVal sText As String) As String
Dim nRet As Long, strRet As String
  strRet = String(Len(sText) * 2, vbNullChar)
  nRet = WideCharToMultiByte(65001, &H0, StrPtr(sText), Len(sText), _
    StrPtr(strRet), Len(sText) * 2, 0&, 0&)
  ToUTF8 = Left(StrConv(strRet, vbUnicode), nRet)
End Function

Sub test() ' Пример работы с функцией '
  text = ToUTF8(textANSI)
End Sub
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы