Страница: 1 | 
		
		 
			   
			 
			 Здравствуйте! Excel.ActiveWorkbook.ActiveSheet.Range("A1").Value = my_recordset.Fields("FIO") Таблица в .dbf файле заполнена в DOS кодировке. Public Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long Function OEM2ANSI(ByVal sOEM As String) As String Excel.ActiveWorkbook.ActiveSheet.Range("A1").Value = OEM2ANSI( my_recordset.Fields("FIO")) Пробовал функцией, написанной в ручную: dos->win, dos->koi8, dos->iso - бесполезно  Подскажите в чем дело ???  (при записи в базу из ячейки Exel такая же беда) 
			 
			 dbf файлы поддерживают обе кодировки, информация о кодировке этом хранится в самом dbf-файле. Драйвер сам корректно преобразует кодировки в обе стороны. Возможно, ты неправильно указываешь драйвер, скажем, у тебя таблица foxpro, а драйвер указан dBase. Пробовал другие драйвера - не помагает. (dbf в win кодировке, а не в dos, как я написал раньше) Интересно то, что когда я сохраняю в базу русские символы (используя в строке подключения ConnectionString параметр CP=1251), то они попадают туда в dos кодировке, а не в виндовой, а читаются потом правильно! А те символы, что были в базе изначально в виндовой кодировке, превращаются при чтении в "кашу":     СМОЛИНА  соответствует  T|+TL=L Видно, что перекодирование к win 1251 не может быть применено, т.к. коды повтаряются для разных символов Может проблемы у драйвера с виндовой кодировкой русского? Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: перекодировка ANSI/OEM
     
    
Добавлено: 02.03.04 13:04
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     Vorobey | ICQ: 135088009
 Vorobey | ICQ: 135088009 
      
       
  
 
    
У меня следующая проблема:
при записи в Exel-ячейку строки, полученной из .dbf файла (доступ к файлу осуществлялся через ODBC), русские символы отображаются неверно:
Пробовал использовать API функцию - не помогает:
    Dim sANSI As String
    sANSI = String(Len(sOEM), Chr(0))
    OemToChar sOEM, sANSI
    OEM2ANSI = sANSI
End Function
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 3
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: Vorobey
 Vorobey


ICQ: 135088009 
Вопросов: 1
Ответов: 2
      
 Профиль |  | #1
       
Добавлено:  04.03.04 10:30
       
    
       
  
Вероятно база открывается с неверной кодировкой, НО КАК ПРИ ОТКРЫТИИ БАЗЫ ЗАДАТЬ ВИД КОДИРОВКИ ? ? ? 
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: crackoff
 crackoff


ICQ: 156165990 
Вопросов: 12
Ответов: 229
      
 Профиль |  | #2
       
Добавлено:  04.03.04 13:32
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: Vorobey
 Vorobey


ICQ: 135088009 
Вопросов: 1
Ответов: 2
      
 Профиль |  | #3
       
Добавлено:  07.03.04 01:17