开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (13)
标签 (29)
master
dev
cefpython66
cefpython49-winxp
cefpython58
cefpython57
cefpython56
cefpython55
cefpython54
cefpython53
cefpython52
cefpython51
cefpython31
v66.1
v49.0
v49-upstream
v66.0
v66-upstream
v57.1
v58.0-win32
v57.0
v57-upstream
v56.2
v56.1
v56.0-win
v56-upstream
v56.0
v55.4
v55.3
v55.2
v54.1
v55-upstream
v55.1
master
分支 (13)
标签 (29)
master
dev
cefpython66
cefpython49-winxp
cefpython58
cefpython57
cefpython56
cefpython55
cefpython54
cefpython53
cefpython52
cefpython51
cefpython31
v66.1
v49.0
v49-upstream
v66.0
v66-upstream
v57.1
v58.0-win32
v57.0
v57-upstream
v56.2
v56.1
v56.0-win
v56-upstream
v56.0
v55.4
v55.3
v55.2
v54.1
v55-upstream
v55.1
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (13)
标签 (29)
master
dev
cefpython66
cefpython49-winxp
cefpython58
cefpython57
cefpython56
cefpython55
cefpython54
cefpython53
cefpython52
cefpython51
cefpython31
v66.1
v49.0
v49-upstream
v66.0
v66-upstream
v57.1
v58.0-win32
v57.0
v57-upstream
v56.2
v56.1
v56.0-win
v56-upstream
v56.0
v55.4
v55.3
v55.2
v54.1
v55-upstream
v55.1
cefpython
/
src
/
string_utils.pyx
cefpython
/
src
/
string_utils.pyx
string_utils.pyx 5.73 KB
一键复制 编辑 原始数据 按行查看 历史
# Copyright (c) 2012 CEF Python, see the Authors file.
# All rights reserved. Licensed under BSD 3-clause license.
# Project website: https://github.com/cztomczak/cefpython
# In Python 2 all cefpython strings are byte strings, but in Python 3
# all cefpython strings are unicode. Unicode issues were discussed
# in Issue #60: https://github.com/cztomczak/cefpython/issues/60
# Unicode issues were discussed on cython-users, see posts by Stefan
# Behnel: https://groups.google.com/d/topic/cython-users/VICzhVn-zPw/discussion
# See the "basestring" comment in cefpython.pyx.
# Note that bytes != str != unicode != basestring in Cython
# Any bytes/unicode encoding and decoding in cefpython should
# be performed only using functions from this file - let's
# keep it in one place for future fixes - see Issue 60 ("Strings
# should be unicode by default, if bytes is required make it
# explicit").
include "cefpython.pyx"
# TODO: make this configurable through ApplicationSettings.
UNICODE_ENCODE_ERRORS = "replace"
BYTES_DECODE_ERRORS = "replace"
cdef py_string AnyToPyString(object value):
cdef object valueType = type(value)
if valueType == str or valueType == bytes:
return value
elif PY_MAJOR_VERSION < 3 and valueType == unicode:
# The unicode type is not defined in Python 3
return value
else:
return ""
cdef py_string CharToPyString(
const char* charString):
if PY_MAJOR_VERSION < 3:
return <bytes>charString
else:
return <unicode>((<bytes>charString).decode(
g_applicationSettings["string_encoding"],
errors=BYTES_DECODE_ERRORS))
cdef bytes PyStringToChar(py_string pyString):
if PY_MAJOR_VERSION < 3:
return <bytes>pyString
else:
# The unicode type is not defined in Python 3.
if type(pyString) == str:
pyString = <bytes>(pyString.encode(
g_applicationSettings["string_encoding"],
errors=UNICODE_ENCODE_ERRORS))
return pyString
# Not used anywhere so commented out.
# ---
# cdef py_string CppToPyString(
# cpp_string cppString):
# if PY_MAJOR_VERSION < 3:
# return <bytes>cppString
# else:
# return <unicode>((<bytes>cppString).decode(
# g_applicationSettings["string_encoding"],
# errors=BYTES_DECODE_ERRORS))
# ---
# No need for this function as you can do it in one line.
# Stays here just for the info on how to do it.
# ---
# cdef cpp_string PyToCppString(py_string pyString) except *:
# cdef cpp_string cppString = pyString
# return cppString
# ---
cdef py_string CefToPyString(
ConstCefString& cefString):
cdef cpp_string cppString
if cefString.empty():
return ""
IF UNAME_SYSNAME == "Windows":
cdef wchar_t* wcharstr = <wchar_t*> cefString.c_str()
return WidecharToPyString(wcharstr)
ELSE:
cppString = cefString.ToString()
if PY_MAJOR_VERSION < 3:
return <bytes>cppString
else:
return <unicode>((<bytes>cppString).decode(
g_applicationSettings["string_encoding"],
errors=BYTES_DECODE_ERRORS))
cdef bytes CefToPyBytes(
ConstCefString& cefString):
return <bytes>cefString.ToString()
cdef void PyToCefString(
py_string pyString,
CefString& cefString
) except *:
if PY_MAJOR_VERSION < 3:
# Handle objects that may be converted to string e.g. QString
if not isinstance(pyString, str) and not isinstance(pyString, unicode):
pyString = str(pyString)
if type(pyString) == unicode:
pyString = <bytes>(pyString.encode(
g_applicationSettings["string_encoding"],
errors=UNICODE_ENCODE_ERRORS))
else:
# Handle objects that may be converted to string e.g. QString
if not isinstance(pyString, str) and not isinstance(pyString, bytes):
pyString = str(pyString)
# The unicode type is not defined in Python 3.
if type(pyString) == str:
pyString = <bytes>(pyString.encode(
g_applicationSettings["string_encoding"],
errors=UNICODE_ENCODE_ERRORS))
cdef cpp_string cppString = pyString
# Using cefString.FromASCII() will result in DCHECK failures
# when a non-ascii character is encountered.
cefString.FromString(cppString)
cdef CefString PyToCefStringValue(
py_string pyString
) except *:
cdef CefString cefString
PyToCefString(pyString, cefString)
return cefString
cdef void PyToCefStringPointer(
py_string pyString,
CefString* cefString
) except *:
if PY_MAJOR_VERSION < 3:
if type(pyString) == unicode:
pyString = <bytes>(pyString.encode(
g_applicationSettings["string_encoding"],
errors=UNICODE_ENCODE_ERRORS))
else:
# The unicode type is not defined in Python 3.
if type(pyString) == str:
pyString = <bytes>(pyString.encode(
g_applicationSettings["string_encoding"],
errors=UNICODE_ENCODE_ERRORS))
cdef cpp_string cppString = pyString
# When used cefString.FromASCII(), a DCHECK failed
# when passed a unicode string.
cefString.FromString(cppString)
cdef py_string VoidPtrToString(const void* data, size_t dataLength):
if PY_MAJOR_VERSION < 3:
return <bytes>((<char*>data)[:dataLength])
else:
return <unicode>((<bytes>(<char*>data)[:dataLength]).decode(
g_applicationSettings["string_encoding"],
errors=BYTES_DECODE_ERRORS))
cdef bytes VoidPtrToBytes(const void* data, size_t dataLength):
return <bytes>((<char*>data)[:dataLength])
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

ddsdsd
暂无标签
未知许可证
查看未知开源许可协议
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/aoplxml/cefpython.git
git@gitee.com:aoplxml/cefpython.git
aoplxml
cefpython
cefpython
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /