백엔드 개발 파이썬 튜토리얼 python连接sql server乱码的解决方法

python连接sql server乱码的解决方法

Jun 16, 2016 am 08:46 AM
python sqlserver 왜곡된 문자

vi /etc/freetds/freetds.conf

复制代码 代码如下:

[global]
# TDS protocol version
tds version = 8.0
client charset = UTF-8
# A typical Microsoft server
[Server55]
host = 192.168.1.55
port = 1433
tds version = 8.0
vi /etc/odbc.ini
[DSN55]
Description=my dsn
Driver=TDS
Database=qq99
Servername=Server55

tsql -S Server55 -U qq -P 123456 -D qq99
复制代码 代码如下:

#coding=utf-8
#!/usr/bin/python
import pyodbc
cnxn = pyodbc.connect("DSN=DSN55;UID=qq;PWD=123456")
cursor = cnxn.cursor()
cursor.execute('select * from orders where username=?','qq')
a=cursor.fetchall()
print 'pyodbc',a

关闭连接:
复制代码 代码如下:

csr.close()
del csr
conn.close()

python 使用pymssql连接sql server数据库

复制代码 代码如下:

#coding=utf-8
#!/usr/bin/env python
#-------------------------------------------------------------------------------
# Name: pymssqlTest.py
# Purpose: 测试 pymssql库,该库到这里下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql
#
# Author: scott
#
# Created: 04/02/2012
#-------------------------------------------------------------------------------

import pymssql


class MSSQL:
    """
    对pymssql的简单封装
    pymssql库,该库到这里下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql
    使用该库时,需要在Sql Server Configuration Manager里面将TCP/IP协议开启

    用法:

    """

    def __init__(self,host,user,pwd,db):
        self.host = host
        self.user = user
        self.pwd = pwd
        self.db = db

    def __GetConnect(self):
        """
        得到连接信息
        返回: conn.cursor()
        """
        if not self.db:
            raise(NameError,"没有设置数据库信息")
        self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
        cur = self.conn.cursor()
        if not cur:
            raise(NameError,"连接数据库失败")
        else:
            return cur

    def ExecQuery(self,sql):
        """
        执行查询语句
        返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段

        调用示例:
                ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")
                resList = ms.ExecQuery("SELECT id,NickName FROM WeiBoUser")
                for (id,NickName) in resList:
                    print str(id),NickName
        """
        cur = self.__GetConnect()
        cur.execute(sql)
        resList = cur.fetchall()

        #查询完毕后必须关闭连接
        self.conn.close()
        return resList

    def ExecNonQuery(self,sql):
        """
        执行非查询语句

        调用示例:
            cur = self.__GetConnect()
            cur.execute(sql)
            self.conn.commit()
            self.conn.close()
        """
        cur = self.__GetConnect()
        cur.execute(sql)
        self.conn.commit()
        self.conn.close()

def main():
## ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")
## #返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段
## ms.ExecNonQuery("insert into WeiBoUser values('2','3')")

    ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")
    resList = ms.ExecQuery("SELECT id,weibocontent FROM WeiBo")
    for (id,weibocontent) in resList:
        print str(weibocontent).decode("utf8")

if __name__ == '__main__':
    main()

注意事项:
    使用pymssql进行中文操作时候可能会出现中文乱码,我解决的方案是:
文件头加上 #coding=utf8
sql语句中有中文的时候进行encode
   insertSql = "insert into WeiBo([UserId],[WeiBoContent],[PublishDate]) values(1,'测试','2012/2/1')".encode("utf8")
 连接的时候加入charset设置信息
    pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

정량적 통화 거래 소프트웨어 정량적 통화 거래 소프트웨어 Mar 19, 2025 pm 04:06 PM

이 기사는 정량적 거래자가 올바른 플랫폼을 선택할 수 있도록 돕기 위해 세 가지 주요 거래소 인 Binance, Okx 및 Gate.io의 정량적 거래 기능을 탐구합니다. 이 기사는 먼저 정량적 거래의 개념, 장점 및 과제를 소개하고 API 지원, 데이터 소스, 백 테스트 도구 및 위험 제어 기능과 같은 우수한 정량적 거래 소프트웨어가 가져야하는 기능을 설명합니다. 그 후, 3 개의 거래소의 정량적 거래 기능을 비교하고 세부적으로 분석하여 각각 장점과 단점을 지적하고, 마침내 다른 수준의 경험을 가진 정량적 거래자에게 플랫폼 선택 제안을 제공하고, 위험 평가 및 전략적 백 테스트의 중요성을 강조했습니다. 당신이 초보자이든 숙련 된 정량적 거래자이든,이 기사는 귀중한 참조를 제공합니다.

Python으로 통화를 구현하는 방법 -Deepseek Python Call Method Guide Python으로 통화를 구현하는 방법 -Deepseek Python Call Method Guide Mar 12, 2025 pm 12:51 PM

DeepSeek 딥 러닝 라이브러리 Python Call Guide DeepSeek은 다양한 신경망 모델을 구축하고 훈련시키는 데 사용할 수있는 강력한 딥 러닝 라이브러리입니다. 이 기사는 Python을 사용하여 딥 러닝 개발을 위해 DeepSeek에게 전화하는 방법을 자세히 소개합니다. Python 1으로 DeepSeek을 호출하는 단계. DeepSeek 설치 Python 환경 및 PIP 도구가 설치되어 있는지 확인하십시오. 다음 명령으로 DeepSeek를 설치하십시오. PipinstallDeepSeek2. DeepSeek Library 가져 오기 Python 스크립트 또는 Jupyternotebook에서 DeepSeek 라이브러리를 가져옵니다.

Binance Alpha는 무엇입니까? Binance Alpha는 무엇입니까? Mar 25, 2025 pm 03:39 PM

Anbi Alpha는 Binance 플랫폼의 전문 거래자 및 투자자를위한 도구 및 서비스 집계 플랫폼입니다. 그 핵심 기능에는 다음이 포함됩니다. 1. 전략 광장, 다른 거래 전략을 함께 제공합니다. 2. 맞춤형 거래 전략을 허용하는 전략 건축업자; 3. 시장 분석 도구 제공, 고급 데이터 분석; 4. 전문 투자자의 요구를 충족시키기위한 기관 차원의 서비스.

거래 측면을 통해 옵션 헤징 지침을 보낼 수있는 거래소 거래 측면을 통해 옵션 헤징 지침을 보낼 수있는 거래소 Mar 28, 2025 pm 03:27 PM

2024 년 현재 거래 터미널을 통해 직접 옵션 헤징 지침을 직접 보내는 주류 암호 화폐 교환 : 1. DeBibit은 델타 헤징 및 감마 스케일링과 같은 고급 전략을 지원하고 웹 버전/API 원 클릭 헤징을 제공합니다. 2. OKX는 변동성 헤징 및 전략 조합 도구와 웹/앱의 내장 헤징 패널을 지원합니다. 3. Binance는 수동 또는 API 조합 위치가 필요한 보호 헤징을 지원합니다. 4. CME, 중개인을 통한 액세스가 필요한 표준 옵션을 제공합니다. 5. Ledgerx, 기관 인증이 필요한 전문 수준의 헤지 도구를 제공합니다.

램프 아키텍처에서 Node.js 또는 Python 서비스를 효율적으로 통합하는 방법은 무엇입니까? 램프 아키텍처에서 Node.js 또는 Python 서비스를 효율적으로 통합하는 방법은 무엇입니까? Apr 01, 2025 pm 02:48 PM

많은 웹 사이트 개발자는 램프 아키텍처에서 Node.js 또는 Python 서비스를 통합하는 문제에 직면 해 있습니다. 기존 램프 (Linux Apache MySQL PHP) 아키텍처 웹 사이트 요구 사항 ...

라텍스 공식으로 다층 중첩 브래킷을 효율적으로 구문 분석하여 다차원 사전으로 변환하는 방법은 무엇입니까? 라텍스 공식으로 다층 중첩 브래킷을 효율적으로 구문 분석하여 다차원 사전으로 변환하는 방법은 무엇입니까? Apr 01, 2025 am 08:57 AM

Python Parses Latex Multi-Layer 브래킷 : 다차원 사전 빌드 많은 라텍스 ...

문자 세트와 레이어 수를 기반으로 비 반복적 인 순열 조합을 생성하고 동일한 조합의 모든 문자를 제외하는 방법은 무엇입니까? 문자 세트와 레이어 수를 기반으로 비 반복적 인 순열 조합을 생성하고 동일한 조합의 모든 문자를 제외하는 방법은 무엇입니까? Apr 01, 2025 am 06:57 AM

문자 세트 및 레이어 번호에 따라 순열 조합을 생성합니다. 이 기사는 중복을 피하기 위해 주어진 문자 세트와 레이어 번호를 기반으로 해당 순열 조합 결과를 생성하는 방법을 살펴 봅니다 ...

SCAPY 크롤러를 사용할 때 파이프 라인 영구 스토리지 파일을 작성할 수없는 이유는 무엇입니까? SCAPY 크롤러를 사용할 때 파이프 라인 영구 스토리지 파일을 작성할 수없는 이유는 무엇입니까? Apr 01, 2025 pm 04:03 PM

SCAPY 크롤러를 사용할 때 파이프 라인 영구 스토리지 파일을 작성할 수없는 이유는 무엇입니까? 토론 Data Crawler에 Scapy Crawler를 사용하는 법을 배울 때 종종 ...

See all articles